二分图
zhhx2001
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
匈牙利算法模版(poj1469)
#include #include #include #include using namespace std; int ss,n,p,match[509]; bool a[509][509],use[509]; bool dfs(int i) { if (use[i]) return false; use[i]=true; for (int j=1;j<=n;j++) if (a[原创 2016-06-25 09:36:42 · 429 阅读 · 0 评论 -
vijos P1212Way Selection(简单的建图)
注意,double的输入输出一定要用 %lf !!!!!!!! #include #include #include #include #include using namespace std; int r,aa,t,match[2009]={0}; double x[2009],y[2009],v[2009],xx[2009],yy[2009]; bool a[2009][2009原创 2016-06-25 11:06:01 · 584 阅读 · 0 评论 -
bzoj1191(最大匹配,但不完全一样)
因为要求连续,所以只要到一个位置不能扩展出增广路时,就直接返回答案就行 并且由此得出一个匈牙利算法的性质: 在遍历过程中,只要已经遍历过的节点能扩展出增广路,那么在之后的扩展中,他也一定在匹配的节点集 中,但是二分图另一个节点集则可能会出现变化 #include #include #include #include #include using namespace std; int原创 2016-06-25 11:57:24 · 512 阅读 · 0 评论 -
codevs1022覆盖(二分图最大匹配)
因为,一个点肯定与他旁边的点相连,所以根据横纵坐标只和可以分成单数和双数两个集合,正好构成二分图 然后,一个点和挨着它可行的点连边。 再直接最大匹配就可以了 #include #include #include using namespace std; const int qx[2]={-1,0},qy[2]={0,-1}; int n,m,id1=0,id2=0,match[500原创 2016-06-25 13:02:27 · 564 阅读 · 0 评论 -
矩阵游戏(二分图匹配)
不知道怎么就这样建图,直觉吧, 去再看一看二分图匹配 我们知道,对于每一行来说,交换行,是不改变这行的状态的, 交换列只是改变颜色的顺序,对于颜色的个数也没有改变,列 也同样存在这一性质 那么最后我们要求的是主对角线上都是黑色,也就是每行选一个黑 色的,且任意两行选的黑色的不在同一列,我们构造一张二分图, 图的一边是行,另一边是列,所以对于每个黑点连边,二原创 2016-07-02 09:52:51 · 1192 阅读 · 0 评论
分享