- 博客(7)
- 收藏
- 关注
原创 Arctic Networks uva10369(最小生成树Kruskal)
//又是再看了别人的思路后想通的//本题是最小生成树的稍稍变形//最小生成树有两个特点,//一个是保证了所有边的和是最小值,//另一个是保证了所有边中的最大值最小。 /*参考:由于Kruskal算法每选中一条边就相当于把两个点集合并成了一个点集,最后用n-1条边连成了1个点集。那么我们往回推,n-2条边就连成了2个点集,n-3条边就连成了3个点集……
2014-12-13 10:22:29
349
原创 二部图最大匹配
匈牙利算法,难点在于构图二部图最大匹配过程:基本思路是每一次操作都能使连通匹配数加1用到了dfs+回溯代码如下://初始化memset(map,0,sizeof(map));memset(match,0,sizeof(match));bool dfs(int u) { for(int v=1;v遍历右图中的m个点 {
2014-12-10 23:10:02
670
原创 最小生成树Kruskal
struct Edge{ int u,v,weight; //起点,终点,权重 Edge(int u0,int v0,int w) : u(u0),v(v0),weight(w){} bool friend operator return A.weight }}; //构边vector edge; int id[MAX];int mini;
2014-12-08 13:02:46
332
原创 queue & priority_queue
队列为先进先出型queue myqueue;以下几个操作较为常用:empty() //判队列是否为空,返回bool型size() //返回队列的大小front() //返回队前元素back() //返回队末尾元素push() //在队尾插入元素swap() //两个相同类型的队列(size可能不同)全部交换 A.swap(B)priorit
2014-12-04 21:52:27
285
原创 线段树
线段树主要用于范围较大的数的查找多用于区间的动态查询 如求定区间的最值。1、线段树的叶节点(的value值)表示给定数组的每个值2、每个内部节点代表其子树中value最小的值线段树的插入方式主要有两类:1)单点更新2)成段更新具体实现
2014-12-04 00:15:05
353
原创 C++的输入输出问题
A关于简单整数输入,有两种:scanf("%d%lld",&a,&b);cin>>a>>b;对于整行的字符串输入:1) getline(); 以回车作为结束例:char str[30]; cin.getline(str, 30); 第二个参数为要读取的字符数注意:getline()会丢弃换行符 2) get() 以回车作为结束例:ch
2014-12-03 14:03:02
528
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人