摘要: http://poj.org/problem?id=3692二分图匹配,匈牙利算法(dfs+邻接矩阵),最大独立集最大独立集 == N - 最小点覆盖 == N - 最大匹配数把没有关系的两点连接,反向建图 1 #include <stdio.h> 2 #include <string.h> 3 4 #define N 210 5 6 int n, m, map[N][N], girl[N], flag[N]; 7 8 int find(int x) 9 {10 int i;11 for(i=1; i<=m; i++)12 {13 if(!flag... 阅读全文
posted @ 2013-01-14 14:35 Yuan1991 阅读(157) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1274二分图匹配,匈牙利算法(dfs+二维数组模拟邻接链表)裸题,不用自己建图,用邻接链表试了一下 1 #include <stdio.h> 2 #include <string.h> 3 4 int n, m; 5 int list[210][210], girl[210], flag[210]; 6 7 int find(int x) 8 { 9 int i;10 for(i=1; i<=list[x][0]; i++)11 {12 if(!flag[list[x][i]])13 ... 阅读全文
posted @ 2013-01-14 12:53 Yuan1991 阅读(147) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3020二分图匹配,匈牙利算法(dfs+邻接矩阵)建图:相邻点双向连接,建无向图结果(最少需要的“圈”数) ==(总点数 - 最大匹配数)/*没有匹配成功的点需要自己单独一个“圈”*/ + (最大匹配数 / 2) /*匹配成功的点,2个点共用一个"圈"*/化简为:结果 == 总点数 - (最大匹配数 / 2) 1 #include <stdio.h> 2 #include <string.h> 3 #define N 432 4 5 int n, m; 6 int map[N][N], flag[N 阅读全文
posted @ 2013-01-14 11:40 Yuan1991 阅读(163) 评论(0) 推荐(0) 编辑