ACM_图论.二分图.网络流
文章平均质量分 72
_天道酬勤_不忘初心
这个作者很懒,什么都没留下…
展开
-
HDU 1281 棋盘游戏
题目地址:点击打开链接思路:参考的大神的,把棋盘的横坐标看做x,纵坐标看做y,棋盘中的一个格子看做二分图中两个集合的一条边,题目的条件是任意两个“车”不能在同一行且不在同一列,也就是两个集合中每个点都只能连接一条边,这正好满足最大匹配,然后枚举每个位置不放“车”的情况下,得出的最大匹配是否等于放“车”时的解,如果不等于,这个位置就是关键点。AC代码:#include#include原创 2015-07-18 00:36:08 · 414 阅读 · 0 评论 -
HDU 1498 50 years, 50 colors(最小顶点覆盖)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1498思路:和HDU2119有点像,枚举每种颜色的气球就行AC代码:#include #include #include #include #include #include #include #include #include #include #include co原创 2016-05-15 20:41:13 · 408 阅读 · 0 评论 -
HDU 1151 Air Raid(最小路径覆盖)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1151思路:对于一个有向无环图,其最小简单路径覆盖就是等于节点数减去二分图的最大匹配数AC代码:#include #include #include #include #include #include #include #include #include #include原创 2016-05-05 21:14:49 · 272 阅读 · 0 评论 -
POJ 2239 Selecting Courses(最大匹配数)
题目地址:http://poj.org/problem?id=2239思路:建图的过程挺巧妙的通过(p-1)*12+q,把时间点固定在一个点上,二分图的左边是课程,右边是时间,跑一遍匈牙利算法即可,注意课程的编号不能从0开始,否则会造成给某个时间已经给0号课程用了,程序会认为没用,因为hus的数组,初始值就是0 ,你要实在想从0开始,记得把hus数组初始值赋为-1,程序里面还要再改,会比较麻烦原创 2016-05-04 15:38:57 · 299 阅读 · 0 评论 -
HDU 1083 Courses(最大匹配)
题目地址:点击打开链接思路:二分图的最大匹配,代码的解释是照着并查集详解的内容写的,思路差不多,并查集详解地址:AC代码:#include#includeint lol[101][301],visit[301],cf[301],n;bool find(int l){ int i; for(i=1; i<=n; i++) { if(lol[l][i] && !visit原创 2015-07-18 00:30:26 · 606 阅读 · 0 评论 -
二分图总结
最大匹配数=最小点覆盖最小路径覆盖 = 顶点数 – 最大匹配原创 2016-05-14 19:45:54 · 267 阅读 · 0 评论 -
POJ 1129 Channel Allocation(图的着色问题)
题目地址:http://poj.org/problem?id=1129题意:相当于地图的着问题,临近的国家要用不同的颜色去涂,最多只需要4中颜色即可思路:枚举颜色即可AC代码:#include #include #include #include #include #include #include #include #include #include #inc原创 2016-05-02 15:02:04 · 364 阅读 · 0 评论 -
HDU 3549 Flow Problem(网络流入门题-最大流的Ford-Fulkerson算法)
题目地址:点击打开链接思路:网络流入门题,第一次写经验不够,应该把起点和终点单独列出来,这样模板每次只需要改进一部分内容即可AC代码:#include #include #include #include #include using namespace std;int map1[20][20],pre[20],vis[20],n;bool bfs(){原创 2015-09-06 10:58:33 · 478 阅读 · 0 评论 -
HDU 1272 小希的迷宫(判断一个图是否为连通图且没有环)
题目地址:点击打开链接思路:本来想找点并查集判环的题,结果找到了这题,根本用不到并查集,判断一个图是否为连通图且没有环其实就一个条件,点数-1=边数AC代码:#include #include #include #include #include #include #include #include #include #include using namespac原创 2015-09-14 14:30:50 · 511 阅读 · 0 评论 -
POJ 3041 Asteroids(最大匹配数=最小点覆盖)
题目地址:点击打开链接题意:贝西驾驶一辆飞船,飞过一个n*n的网格,里面有k个小行星,然后他要发射子弹把这些小行星打掉,问把这些小行星打掉最少需要发射几发子弹思路:矩阵类的题有时候会和二分图结合的很巧妙,这个就是比较裸的求最小点覆盖AC代码:#include #include #include #include #include #include #include #原创 2015-10-25 20:26:08 · 362 阅读 · 0 评论 -
POJ 1325 Machine Schedule(最大匹配数=最小点覆盖)
题目地址:点击打开链接题意:给你2个机器A(A的模式有n种,标号从0到n-1)和B(B的模式有m种,标号从0到m-1),然后给你k个任务,(i,x,y)表示做完第i个任务可以用A机器的x模式和B机器的y模式思路:很裸的二分图最小点覆盖,这道题需要注意点,A,B机器刚开始的模式都是0,所以在模式0处的不算,这个算是一个坑吧,看了别人的博客才知道AC代码:#include #incl原创 2015-10-25 19:34:42 · 334 阅读 · 0 评论 -
HDU 1179 Ollivanders: Makers of Fine Wands since 382 BC.(最大匹配)
题目地址:点击打开链接思路:简单二分图匹配,代码粘的详解的,所以解释有点扯淡,对应关系是,为每个魔法棒找巫师,对应为每个光棍找妹子,注意光棍要从1开始循环,不能从0开始循环,不然会出错,导致的结果妹子的丈夫为0时,有时会再给她一个丈夫AC代码:#include#includeint lol[110][110],visit[110],cf[110],n;bool find(in原创 2015-08-11 11:39:29 · 384 阅读 · 0 评论 -
二分图匹配之匈牙利算法
前面的简介是大神写的,后面跟了一点杭电上的题目代码讲的也比较详细,可以加深理解吧原文地址如下:点击打开链接【书本上的算法往往讲得非常复杂,我和我的朋友计划用一些简单通俗的例子来描述算法的流程】匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,转载 2015-07-18 00:22:50 · 487 阅读 · 0 评论 -
HDU 2255 奔小康赚大钱(KM)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2255思路:比较裸的KM算法KM算法讲解的一些地址:主要思想:http://wenku.baidu.com/view/28203c49767f5acfa1c7cd38.html代码过程详解:http://wenku.baidu.com/link?url=oUbIxhSFz_PFzGb-M原创 2016-05-18 21:14:03 · 409 阅读 · 0 评论