摘要:每个人喜欢某个动物,讨厌某个动物。一个人只有喜欢动物在,讨厌动物不在才会开心==问减去一些动物最多可以让多少人开心==想到->对人建图对于两个人,如果A讨厌的是B喜欢的,或者A喜欢的是B讨厌的,就A->B连边,表示互斥求一遍最大匹配ans,因为一个人被拆成两个,所以(2*n-ans)/2就是最多开心...
阅读全文
摘要:(男生喜欢特定的女生,女生可以嫁给任何男生=先按题意求出最大匹配,然后在左边增加n-res个虚拟男生喜欢所有女生,m-res个虚拟女生喜欢所有男生,再求最大匹配,这个时候肯定是个完全匹配,求匹配只是确定新的二分图里面每个男生对应的女生是谁=在所有女生女生里面建有向图,将某男生匹配的女生连向所有他喜欢...
阅读全文
摘要:将给定01矩阵进行任意行列交换使主对角线全为1==行列建图,如果完全匹配则必然可以,继而使用选择排序思想来只交换行(或者列) 1 #include 2 #include 3 struct dian{ 4 int x,y; 5 }a[1005]; 6 int n,g[105][105],yy[...
阅读全文
摘要:1 #include 2 #include 3 int n,n1,n2,link[1255],y[1255],g[1255][1255],mapl[55][55],mapr[55][55]; 4 char map[55][55]; 5 int dfs(int x) 6 { ...
阅读全文
摘要:1 #include 2 #include 3 int w,m, head[10005],point[10005],next[10005],y[10005],link[10005],now; 4 void add(int x,int y) 5 { 6 //now是边的数目 7 ne...
阅读全文
摘要:1 #include 2 #include 3 int g[505][505],y[505],link[505],n1,n2; 4 int find(int x) 5 { 6 int i; 7 for (i=1;i<=n2;i++) 8 if (g[x][i]==1&&y...
阅读全文
摘要:1 #include 2 #include 3 int number[505],dian1[505],dian2[505],y[505],link[505],hash[505]; 4 int f[505][505],g[505][505]; 5 int n1,n2; 6 int doit(int ...
阅读全文