![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
匹配
裤头Kt
这个作者很懒,什么都没留下…
展开
-
HDU-2444-The Accomodation of Students [二分匹配][判断二分图][BFS染色法]
题目传送门题意:给定n个学生,学生之间可能互相认识。首先需要判断能不能将学生分成两组,使组内学生互相不认识。然后将学生两两分组,保证每一组学生都认识,求最大组数。思路:交叉染色法判断是不是二分图,然后二分匹配模板。交叉染色法:首先将一个节点染色,然后将与此相连的节点全部染成另一种颜色,如果有相连节点颜色相同则不是二分图。可以用BFS/DFS写。#include <algorithm>#includ原创 2017-08-22 09:23:18 · 236 阅读 · 0 评论 -
HDU-1083-Courses [二分匹配]
题目传送门题意:有P门课程和N个学生,每门课程有0-N个学生参加,问可不可以选出每门课的课代表,要求一个学生只能当一个课程的课代表。思路:裸的二分匹配,匈牙利算法。#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>#incl原创 2017-08-22 10:10:34 · 195 阅读 · 0 评论 -
HDU-1045-Fire Net [二分匹配][匈牙利算法]
题目传送门题意:给一个最大4*4的地图,’.’为路’X’为墙,可以在路上安放堡垒,堡垒会攻击与炮台所在一条直线上所有堡垒,但堡垒打不破墙。问在这个地图上可以最多安放多少个堡垒。思路:裸的二分匹配模板题。难点在于如何建图,分别从横竖两个方向进行缩点建立二分图。#include <algorithm>#include <iostream>#include <cstdlib>#include <cs原创 2017-08-22 08:46:28 · 363 阅读 · 0 评论 -
HDU-1281-棋盘游戏 [二分匹配][关键匹配]
题目传送门题意:给定二分图求最大匹配数和关键匹配数。思路:先通过匈牙利算法求最大匹配数,然后遍历二分图,去掉一条边之后再用匈牙利算法算匹配数,如果小于最大匹配数,则这个边为关键点。#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmat原创 2017-08-23 08:42:27 · 199 阅读 · 0 评论 -
HDU-2819-Swap [二分匹配][输出路径]
题目传送门题意:给定一个只有0 1的矩形,问能否通过交换行列使对角线上的数全为1,如果可以输出交换的路径。思路:首先通过匈牙利算法算出最大匹配,如果最大匹配数不等于矩阵的行数,则必然不会成功。只交换行,或者只交换列都可以交换出来。#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#includ原创 2017-08-23 09:17:32 · 252 阅读 · 0 评论 -
HDU-2389-Rain on your Parade [二分匹配][Hopcroft-Carp]
题目传送门题意:有n个人的坐标和速度,有m个伞的坐标,问有多少人能在t秒内到伞底下,一个伞底下只能有一个人。思路:二分匹配,用匈牙利算法无限超时,又改用邻接表还是超时,最后查资料才知道处理数据较大的二分匹配需要用Hopcroft-Carp算法。Hopcroft-Carp算法模板:/* *********************************************二分图匹配(Hopcro原创 2017-08-24 08:53:38 · 454 阅读 · 0 评论 -
HDU-4185-Oil Skimming [二分匹配]
题目传送门题意:一个地图由’.’和’#’组成,问有多少个不重叠的’##’。思路:先将所有的’#’hash,然后建二分图,用匈牙利算法算最大匹配日数,因为边建了两次,所以结果除以二。#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmat原创 2017-08-24 09:46:43 · 237 阅读 · 0 评论 -
POJ-3020-Antenna Placement [二分匹配][最小路径覆盖]
题目传送门题意:一个地图由o和*组成,一个信号塔可以覆盖两个连续的*。问至少需要多少个信号塔才能覆盖所有的*。思路:先将所有的’*’hash,然后建立二分图,用匈牙利算法算出最大匹配数。最小路径覆盖数 = 顶点数 - 最大匹配数#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include原创 2017-08-24 10:13:08 · 284 阅读 · 0 评论