匹配
disPlayLzy_
梦在前方,路在脚下
展开
-
SSL P1338 最大匹配之人员分配
题目大意:有M个工人x1, x2, …, xm,和N项工作y1, y2, …, yn,规定每个工人至多做一项工作,而每项工作至多分配一名工人去做。由于种种原因,每个工人只能胜任其中的一项或几项工作。问应怎样分配才能使尽可能多的工人分配到他胜任的工作。总共有s组x,y表示工人x能胜任工作y。 这个问题称为人员分配问题。 1<=m,n<=100 1<=s<=10000 题解:这题是匈牙利算法的模板原创 2017-12-18 21:44:14 · 327 阅读 · 0 评论 -
POJ P1422 Air Raid
题目大意:定义: 一个不含圈的有向图G中,G的一个路径覆盖是一个其结点不相交的路径集合P,图中的每一个结点仅包含于P中的某一条路径。路径可以从任意结点开始和结束,且长度也为任意值,包括0。请你求任意一个不含圈的有向图G的最小路径覆盖数。 数据有T组,每组给出N个顶点,M条边,分别求出最小路径覆盖数。n<=120题解:根据定理: 最小路径覆盖数=G的定点数-最小路径覆盖中的边数 最小路径覆盖原创 2017-12-22 21:39:16 · 359 阅读 · 0 评论 -
SSL P1333 地鼠的困境
题目大意:地鼠家族面临着一个新的威胁——猎食者。 地鼠家族一共有N个地鼠和M个鼠洞,每个都位于不同的(x, y)坐标中。假如有地鼠在发觉危险以后s秒内都没有回到鼠洞里的话,就可能成为老鹰的食物。当然了,一个鼠洞只能拯救一只地鼠的命运,所有地鼠都以相等的速度v移动。地鼠家族需要设计一种策略,使得老鹰来时,易受攻击的地鼠数量最少。 测试数据T<=50 n, m <= 100题解:这题就是一个裸的匈原创 2017-12-19 18:00:20 · 305 阅读 · 0 评论 -
SSL P1344 Knights
题目大意:给出一个N*N的棋盘,在上面有M个位置不能放马, 马的行走方式如下图: 求互相不攻击的马最多能放多少个。n≤200题解:匈牙利算法: 这题我们分析发现要求的就是最大独立集,因为有证明得出,最大独立集合=|V|-最大匹配数 而题目很明显最多只能放20000个马,所以我们可以去做二分图匹配,当时20000*20000的数组很明显并不能实现,所以我们发现每个马的攻击点是可求的,所以我们在原创 2017-12-22 20:22:26 · 434 阅读 · 0 评论 -
Vijos CoVH之柯南开锁
题目大意:OIBH组织的大门有一个很神奇的锁。 锁是由M*N个格子组成, 其中某些格子凸起(灰色的格子)。每一次操作可以把某一行或某一列的格子给按下去。 OIBH组织不是吃素的, 他们的限定次数恰是最少次数. 请您帮助柯南计算出开给定的锁所需的最少次数.M,N均≤100题解:匈牙利算法: 这题,我们分析发现每次要进行操作,肯定要对答案有贡献,所以我们只可能在有灰格的位置的行列进行操作。原创 2017-12-22 20:52:02 · 572 阅读 · 0 评论 -
SSL P1124 火力网加强版
题目大意:城市由n行n列正方形的地块组成,每一块表示为一个街道或一堵墙。 碉堡就是一个小的城堡,有四个用于射击的口子分别朝着东、南、西、北方向射击。 在城市上放置一些碉堡,使得没有两个碉堡可以互相破坏。碉堡的合法配置就是没有两个碉堡在同一行或同一列上,除非它们之间至少有一堵墙隔在中间。在题目中我们考虑小的正方形城市(最多4×4)包含墙,使得子弹不能穿越。 例: 下图中在[1,2],原创 2017-12-23 16:28:17 · 382 阅读 · 0 评论 -
POJ P2446 Chessboard
题目大意:一个M*N棋盘内,有K个地方有洞,有些地方没有洞,没有洞的地方可以放东西,求是否可以用1*2的长方形填满所有格子(除了洞)。当然长方形不能相互覆盖。0 < m, n <= 32, 0 <= K < m * n题解:我们将没有被覆盖的点打上标记自己为一块,然后将与它相邻的点[x+1,y],[x-1,y],[x,y-1],[x,y+1]中没被覆盖且未出界的点相连,然后做最大匹配。 当任意一个原创 2017-12-25 18:03:27 · 352 阅读 · 0 评论 -
codevs P1222 信与信封问题
题目大意:Small John所提供的n封信依次编号为1,2,…,n;且n个信封也依次编号为1,2,…,n。假定Small John能提供一组信息:第i封信肯定不是装在信封j中。请编程帮助Small John,尽可能多地将信正确地装回信封。n≤100题解:匈牙利算法: 这题我们可以用二分图去实现,先对信封与信之间的关系用匈牙利求一个完美匹配。 然后枚举该匹配中的每一条边,若该边被删除后不能找到增原创 2017-12-26 19:52:12 · 461 阅读 · 0 评论 -
SSL P1335 最佳派对
题目大意:有N个中国学生,给出K对配合数,每对由一名中国学生i与外国学生j组成,求能选出最多的派对是多少。 如果所求的最佳派对方案不存在,则在输出文件写入’NO SOLUTION’。n<100题解:匈牙利算法: 这题的做法就是构建一个二分图求最大匹配,一边放中国的,另一边放外国的,然后匈牙利代码:const maxn=100;var map:Array [0..maxn+1,0原创 2017-12-27 16:47:56 · 385 阅读 · 0 评论 -
SSL P1342 Machine Schedule
题目大意:有两台机器A和B。 A机器有n个工作模式,分别为 mode_0、mode_1….mode_n-1,B机器有m个工作模式:mode_0、mode_1….mode_m-1,我们现在有k件,工作,每个工作可以用(i,x,y)描述,表示i号工作能被A机器的mode_x或B机器的mode_y模式完成。 机器如果改变一个模式需要人工去操作… 请你排出工作表,以使人工操作的次数最少。 n, m原创 2017-12-27 16:52:44 · 246 阅读 · 0 评论 -
ZOJ P1654 Place the Robots
题目大意:有T个不同的M*N的农场,每个农场很多草地,墙,空地,农夫想在空地上放置机器人,对于一个机器人,能向它的四周攻击,直到碰到墙或出界,问最多能放置多少个机器人。T <= 11 1<= m, n <=50题解:这题其实很简单的... 我们可以可以用到二分图匹配, 首先我们可以自行的去构建很多个独立的行,即每一行被障碍分成了很多个小块,把这些小块给标记 然后继续构建很多个独立的列,同原创 2017-12-28 16:46:07 · 331 阅读 · 0 评论 -
POJ P3041 Asteroids
题目大意:题目给出一个N*N矩阵,上面有K个敌人,每个子弹可以打出一横行或者一竖行,问最少用多少子弹消灭都有敌人,如: X.X .X. .X. 1 <= N <= 500 1 <= K <= 10,000题解:匈牙利算法: 这题其实就是一个匈牙利中求最小点覆盖的模板, 根据定理最小点覆盖=最大匹配数,我们可以将行列连边,然后跑匈牙利求最大匹配数。代码:var map:arr原创 2017-12-22 21:12:27 · 230 阅读 · 0 评论