
图论——二分图
文章平均质量分 67
dumeichen
这个作者很懒,什么都没留下…
展开
-
poj 2226 hungary(铺木板)
题意:给定一个矩阵,其中有一些地方有水,用一些长度任意,宽度为1的木板盖住这些有水的地方,问至少需要几块板子。思路:还是二部图最小点覆盖(==最大匹配),只不过建图需要把每条边拆成几段连续的点,行和列都这么处理。#include #include #define N 1255int b[N],g[N][N],n,m,lk[N],used[N],lena,lenb;char s[52原创 2015-03-15 13:11:19 · 413 阅读 · 0 评论 -
poj 2060 最大匹配(最少出租出满足所有顾客)
题意:有m个顾客,每个有开始时间(xx:xx),起点(a,b)与终点(c,d)。拉完这个顾客所需时间是|a-c|+|b-d|分钟。一个车在一天(00:00 to 23:59)之内可能做完i任务之后又能做j任务(条件见原题),问最少需要多少辆出租出能满足所有的乘客。思路:这道题和算法设计中第7章网络流的第9节(Airline Scheduling)相似。记得当时课上老师给出了另一种做法,即用n减原创 2015-02-06 17:57:19 · 401 阅读 · 0 评论 -
poj 3020 二分图最小边覆盖(建立天线覆盖节点)
题意:一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。问至少放置多少个基站才能使得所有的城市都覆盖无线?思路:一个基站相当于一条边,连接相邻的节点。显然就是选取最少的边数使得其能够覆盖所有的顶点。又因为在二分图中最小边覆盖=n-最大匹配。所以题目就转化成了求最大匹配数。建图还是要好好想想,图中的相邻点点对处于不同的部集中。(她的构图貌原创 2014-11-27 09:29:29 · 532 阅读 · 0 评论 -
poj 2724 二部图最大匹配建图(干净的奶酪)
题意:迈克有一台可以净化奶酪的机器,用二进制表示净化的奶酪的编号。但是,在某些二进制串中可能包含有至多一个‘*'。例如01*100,'*'其实就代表可以取0,1两种情况--> 010100 和011100。现在由于迈克不小心,他以同样的方式弄脏了某些奶酪,问你最少用多少次操作就可以把弄脏的奶酪全净化好。(没有被弄脏过的奶酪不能净化。弄脏过的奶酪可以多次净化。)思路:建图想了好久,对问题的敏感性原创 2014-12-12 18:21:23 · 526 阅读 · 0 评论 -
poj 2125 二部图最小点权覆盖
题意:N个点M条边的有向图,给出如下两种操作。删除点I的所有出边,代价是AI。删除点J的所有入边,代价是BI。求最后删除图中所有的边的最小代价。思路:如果不考虑权值,就是一个二分图的最小点覆盖问题,加入权值后,变成了二分图的最小点权覆盖问题。二分图的最小点权覆盖问题可以转化为网络流模型来求解。具体方法为:将每个点拆成两个,意为将两个操作视为两个点v1,v2.源点与v1的弧容量为删除出度的耗费,原创 2014-12-12 14:23:38 · 599 阅读 · 0 评论 -
poj 3308(3041) 二部图最小点权覆盖(杀死棋盘上所有的伞兵)
题意:n*m棋盘上有若干伞兵,现欲在若干行或若干列上建立武器(i行上的武器能干掉i行上所有的伞兵,列同理),给出在每行(列)上的建造费用,已知总费用为所有武器的费用的乘积。求干掉所有士兵的最小费用。思路:行和列分别作为二部图的一部,有伞兵在i行j列上则(i,j)有边。如果这个伞兵被干掉,那么i行或者j列必选一个。也就转化成了求二部图的最小点权覆盖。还是转化为最大流(最小割)来求。因为总费用是所原创 2014-12-12 21:26:16 · 612 阅读 · 0 评论 -
poj 1422 hungary算法(伞兵降落)
题意:给定一个有向无环图,问最少从几个起点开始行走能走完整个图,。原创 2014-08-04 21:27:52 · 390 阅读 · 0 评论 -
poj 1325 二分图最小点覆盖(机器模式的选择)
a原创 2014-07-17 15:31:55 · 544 阅读 · 0 评论 -
poj 1112 二部图判定+背包(team them up)
题意:有 n 个人,他们之间可能相互认识。现在想把这些人分成两组,每个组里面所有人都相互认识,如果可以分成这两组,找出两组人数相差最少的情况。思路:如果将n个人之间不是相互认识的连一条边,那么如果整个图能够表示为二部图则必有解,否则无解。有解得情况下,用背包判断即可。题目需要记录的东西比较多,所以开的数组和流程都比较繁琐。其中的连通分支我用一个类似临界表的方式进行存储。每一个连通分支内染两原创 2015-02-17 19:43:26 · 481 阅读 · 0 评论 -
poj 3692 & 2771 二部图最大独立集(选认识的孩子玩游戏)
题意:所有男孩都互相认识,所有女孩也互相认识。又已知有若干男生和女生互相认识。现在要选出最大的孩子结合,使得他们之间全部互相认识。思路:思路比较明确,如果把所有孩子看成顶点,认识连边构成图,则题意为求图的最大团。由最大团=补图的最大独立集可知相当于求补图的最大独立集。显然补图是二部图。那么根据二部图中最大独立集+最大匹配=V可知相当于求V-最大匹配。#include #include原创 2014-12-12 15:23:27 · 824 阅读 · 0 评论 -
poj 1274 二分图最大匹配
模板。邻接矩阵存储二分图。原创 2014-07-07 16:55:55 · 429 阅读 · 0 评论 -
poj2536 hungary+坐标
题目:给出如干老鼠坐标和若干洞坐标,原创 2014-04-28 20:28:10 · 592 阅读 · 0 评论 -
poj 2594 (机器人覆盖所有顶点)
题意:给定一个有向无环图,现在要选若干顶点放置机器人,机器人可以沿着道路行进,但是不能逆向行进。多个机器人可以经过同一个点。问最少需要放置多少个机器人,餐能使得每个点都被机器人走过。分析:我们仍可将问题转化为最小路径覆盖。如果一个人需要经过另一个人走过的点的时候,让他直接从该点上空飞过去,越过该点,直接走下一个点。如果我们赋予每个人这种能力,那么求得的无重复点的最小路径覆盖结果,就是题目要求的原创 2016-02-13 23:51:40 · 410 阅读 · 0 评论