
二分匹配
芋智波佐助
菜鸟一只
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Light OJ 1373 Strongly Connected Chemicals 二分匹配最大独立集
m种阳离子 n种阴离子 然后一个m*n的矩阵 第i行第j列为1代表第i种阴离子和第j种阴离子相互吸引 0表示排斥 求在阳离子和阴离子都至少有一种的情况下 最多存在多少种离子可以共存 阴阳离子都至少需要存在一种 那么可以枚举哪2种离子共存 假设枚举a b 然后找到所有的和a可以共存的阴离子(设为x集合)以及和b共存的阳离子(设为y集合) 现在只需求x集合中和y集合中最多有多少个离子可以共存原创 2014-10-11 16:45:59 · 1242 阅读 · 2 评论 -
HDU 3118 Arbiter 判定奇圈
题目来源:HDU 3118 Arbiter 题意:翻译过来就是不能有奇圈 每走一步状态会变化 当他回到起点时如果和原来的状态不一样 可能会死 求至少去掉多少条边可以避免这种状况发生 思路:二分图是没有奇圈的 最多就15个点 我们用状态压缩枚举那些点是在二分图的一边和另外一边 确定二分图之后枚举输入的边 每条边连接的不能是同一集合的点 不符合就去掉 最后取小 #include #inclu原创 2014-06-25 17:45:16 · 1265 阅读 · 0 评论 -
HDU 3360 National Treasures 奇偶匹配最小点覆盖
题目来源:HDU 3360 National Treasures 题意:如果a[i][j] != -1 把他转成二进制 最多有12位 代表题目那张图的12个位置 如果对应位是1 说明在那里放一个守卫可以看住a[i][j]位置上的这个东西 思路:明显死最小点覆盖 奇偶匹配建图 #include #include #include using namespace std; const i原创 2014-06-29 01:09:38 · 1388 阅读 · 0 评论 -
HDU 1281 棋盘游戏 行列匹配
题目来源:HDU 1281 棋盘游戏 题意:有一些点可以放车 放的时候不能相互攻击到 求出哪一些点必须放 不放就不能得到最大的匹配 思路:行列匹配 矩阵的每一个点对于二分图的每一条边 首先求出最大匹配ans 然后如果每次去掉一个点然后再重新求最大匹配 很耗时 可以把第一次二分匹配的图存着 然后那些关键点肯定是是匹配的边 枚举去掉那一个格点(就是去掉一条已经匹配边)如果还能匹配 那么该格点就不原创 2014-07-01 18:56:16 · 912 阅读 · 0 评论 -
Light OJ 1304 The Best Contest Site Ever 行列匹配变形
题目来源:Light OJ 1304 The Best Contest Site Ever 题意:。的位置可以放人 W是障碍物 R除了不能放人之外和。一样 求最多放几个人 思路:行列匹配变形 要重新编行号和列号每一行 因为被W隔断了 ..RR. .W.RW .RRR. 对应行号是 1 1 0 0 2 3 0 4 0 0 5 0 0 0 5 模拟一下预处理原创 2014-07-04 19:12:13 · 1177 阅读 · 0 评论 -
Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖
题目来源:Light OJ 1429 Assassin`s Creed (II) 题意:最少几个人走完全图 可以重复走 有向图 思路:如果是DAG图并且每个点不能重复走 那么就是裸的最小路径覆盖 现在不是DAG 可能有环 并且每个点可能重复走 对于有环 可以缩点 缩点之后的图是DAG图 另外点可以重复走和POJ 2594一样 先预处理连通性 #include #include #incl原创 2014-07-05 12:17:50 · 2039 阅读 · 0 评论 -
Light OJ 1406 Assassin`s Creed 状态压缩DP+强连通缩点+最小路径覆盖
题目来源:Light OJ 1406 Assassin`s Creed 题意:有向图 派出最少的人经过所有的城市 并且每个人不能走别人走过的地方 思路:最少的的人可以走完全图 明显是最小路径覆盖问题 这里可能有环 所以要缩点 但是看样例又发现 一个强连通分量可能要拆分 n最大才15 所以就状态压缩 将全图分成一个个子状态 每个子状态缩点 求最小路径覆盖 这样就解决了一个强连通分量拆分的问题原创 2014-07-12 11:36:25 · 1567 阅读 · 0 评论 -
UVa 11045 My T-shirt suits me / 二分图
二分图建图 判断是否是完全匹配就行 最大流也行 #include #include const int MAX = 300; int a[MAX][MAX]; int Match[MAX]; bool vis[MAX]; char str[7][10] = {"XXL","XL","L","M","S","XS"}; int n,m; int get(char *s)原创 2013-12-13 10:23:16 · 1264 阅读 · 0 评论 -
POJ 1904 King's Quest 强连通分量+二分匹配
好题啊,先赞一个,这里有个讲的好的,感觉让我讲也没他这么好。。。 King's Quest #include #include #include #include #include using namespace std; const int maxn = 2010; vector G[maxn*2]; vector G2[maxn*2]; int pre[ma原创 2016-07-13 09:34:21 · 455 阅读 · 0 评论 -
TOJ 3030 ZOJ 1140 HDU 1083 Courses / 二分图
Courses 时间限制(普通/Java):3000MS/9000MS 运行内存限制:65536KByte 描述 Consider a group of N students and P courses. Each student visits zero, one or more than one courses. Your task is to determine wh原创 2013-11-03 21:06:27 · 1205 阅读 · 0 评论 -
TOJ 1037 POJ 2771 LA 3415 Guardian of Decency / 二分图
就是要防止男女搞对象 所以把可能的对象出去 只要去掉男女中的一个就行 求剩下最多的人数 就是责任书减去最大匹配的对数 还是 模板原创 2013-08-15 11:47:48 · 876 阅读 · 0 评论 -
TOJ 2380 POJ 2536 Gopher II /二分图
就是总的个数减去最大的匹配的个数就是答案 水题 上模板就行 #include #include #include #define MAX 110 struct point { double x; double y; }; point gopher[MAX],hole[MAX]; bool map[MAX][MAX],vis[MAX]; int Match[MA原创 2013-08-15 10:44:15 · 974 阅读 · 0 评论 -
HDU 2444 The Accomodation of Students 二分图判定+最大匹配
题目来源:HDU 2444 The Accomodation of Students 题意:n个人是否可以分成2组 每组的人不能相互认识 就是二分图判定 可以分成2组 每组选一个2个人认识可以去一个双人间 最多可以有几组 思路:二分图判定+最大匹配 #include #include #include using namespace std; const int maxn =原创 2014-06-14 14:33:25 · 1043 阅读 · 0 评论 -
Light OJ 1356 Prime Independence 最大独立集+素数筛选
题目来源:Light OJ 1356 Prime Independence 题意:给你n个数 选出最多的数构成一个集合使得任何2个数不是另外一个数的质数倍 x!=k*y 思路:矛盾的2个数连边 并且所有数分成质因子数为奇数和偶数两部分 以质因子奇偶不同构建二分图 同奇 同偶的数一定不是另外一个数的质数倍 判断矛盾 首先对每个数因子分解 例如x 有a1个p1质因子 a2个p2质因子...an原创 2014-08-06 16:52:43 · 1690 阅读 · 0 评论 -
BZOJ 1143 祭祀river 最长反链
http://vfleaking.blog.163.com/blog/static/1748076342012918105514527/ 大前提:在有向无环图中 链是一个点的集合,这个集合中任意两个元素v、u,要么v能走到u,要么u能走到v。 反链是一个点的集合,这个集合中任意两点谁也不能走到谁。 最长反链是反链中最长的那个。 那么最长反链怎么求呢? 另一个东西叫:最小原创 2016-07-22 09:02:21 · 616 阅读 · 0 评论