图论-二分图
文章平均质量分 83
iHge2k
专注数据结构和算法
展开
-
hdu 3335(最小路径覆盖)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3335思路:有矛盾的条件一般都应该往匹配这方面想:能够整除的连边,于是答案(最小路径)==|顶点个数|-最大匹配。这儿要注意的地方就是要去掉相同的数(排序一下即可),然后就是hungry算法搞定就可以了。 1 #include 2 #include 3 #include原创 2014-05-26 18:00:21 · 472 阅读 · 0 评论 -
hdu 2063(最大匹配数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063二分匹配水题,求最大匹配数(即求边数最多的匹配),匈牙利算法实现。。View Code 1 #include 2 const int MAXN=507; 3 using namespace std; 4 int k,m,n; 5 int map[MAXN][MAX原创 2014-05-26 17:54:35 · 338 阅读 · 0 评论 -
hdu 1281
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1281思路:把棋盘的行x看成二分图左边的点,列y看成二分图右边的点,那么就把可以放车的位置看成是一条边,而二分图的最大匹配中x互不相同,y互不相同,所以每个匹配都是不同行不同列,所以最大匹配就是最多可以放的车的数量。而要判断有多少个点是必须放的,只要在得出最大匹配后,每次去掉一个匹配,再去运算看得出原创 2014-05-26 17:54:42 · 322 阅读 · 0 评论 -
hdu 2444(二分图的判断以及求最大匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2444思路:首先要判断能否构成二分图,用bfs对当前点u染色,对u的邻接点v的颜色进行判断,如果为染色,则染色后入队列,否则,判断color[v]==color[u],如果相等,说明无法构成二部图 ,直接返回false即可。最后就是简单的匈牙利直接求最大匹配就可以了,不过这儿是无向图,最后要除以2。原创 2014-05-26 18:00:42 · 353 阅读 · 0 评论 -
zoj 3370(二分+二分图染色)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3912思路:二分覆盖直径,然后判断是否有冲突(即距离小于等于直径的不能使用同一频率),这样可以用二分图染色的办法判断,看是否能将整个图都染上色。 1 #include 2 #include 3 #include 4 #include 5原创 2014-05-26 18:06:47 · 340 阅读 · 0 评论 -
hdu 3861(缩点+最小路径覆盖)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3861思路:缩点是显然的:What’s more, for each pair of city (u, v), if there is one way to go from u to v and go from v to u, (u, v) have to belong to a same stat原创 2014-05-26 18:00:18 · 474 阅读 · 0 评论 -
hdu 3468(二分匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3468大牛思路:用BFS找出每一个集合点到其它可达点的距离以及这个集合点到下一集合点的距离枚举是否能从一个集合点K经过一个宝物点X到达下一个集合点(K+1).如果能的话,则path[K][X]=true; 如果发现有一个集合点不可达的话,则输出-1; 1 #include原创 2014-05-26 17:59:26 · 344 阅读 · 0 评论 -
hdu 1528+hdu 1962(最小覆盖)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1528题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1962思路:求二分图的最小覆盖,最小覆盖=最大匹配;建图略麻烦。。。View Code 1 #include 2 const int MAXN=30; 3 using原创 2014-05-26 17:55:20 · 337 阅读 · 0 评论 -
hdu 2063+hdu 1083(最大匹配数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063二分匹配水题,求最大匹配数(即求边数最多的匹配),匈牙利算法实现。。View Code 1 #include 2 const int MAXN=507; 3 using namespace std; 4 int k,m,n; 5 int map[MAXN][MAX原创 2014-05-26 17:54:33 · 398 阅读 · 0 评论