
二分图
zhhx2001
这个作者很懒,什么都没留下…
展开
-
匈牙利算法模版(poj1469)
#include#include#include#includeusing 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 · 398 阅读 · 0 评论 -
vijos P1212Way Selection(简单的建图)
注意,double的输入输出一定要用 %lf !!!!!!!!#include#include#include#include#includeusing 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 · 548 阅读 · 0 评论 -
bzoj1191(最大匹配,但不完全一样)
因为要求连续,所以只要到一个位置不能扩展出增广路时,就直接返回答案就行并且由此得出一个匈牙利算法的性质:在遍历过程中,只要已经遍历过的节点能扩展出增广路,那么在之后的扩展中,他也一定在匹配的节点集 中,但是二分图另一个节点集则可能会出现变化#include#include#include#include#includeusing namespace std;int原创 2016-06-25 11:57:24 · 478 阅读 · 0 评论 -
codevs1022覆盖(二分图最大匹配)
因为,一个点肯定与他旁边的点相连,所以根据横纵坐标只和可以分成单数和双数两个集合,正好构成二分图然后,一个点和挨着它可行的点连边。再直接最大匹配就可以了#include#include#includeusing 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 · 534 阅读 · 0 评论 -
矩阵游戏(二分图匹配)
不知道怎么就这样建图,直觉吧,去再看一看二分图匹配我们知道,对于每一行来说,交换行,是不改变这行的状态的,交换列只是改变颜色的顺序,对于颜色的个数也没有改变,列也同样存在这一性质那么最后我们要求的是主对角线上都是黑色,也就是每行选一个黑色的,且任意两行选的黑色的不在同一列,我们构造一张二分图,图的一边是行,另一边是列,所以对于每个黑点连边,二原创 2016-07-02 09:52:51 · 1149 阅读 · 0 评论