
二分图匹配
fyc_kabuto
一个蒟蒻程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj 3175: [Tjoi2013]攻击装置
题解:在n*n的棋盘的指定位置上放尽量多的马,使他们不能相互攻击。题解:二分图最大独立集。 因为太菜了,没做过这样对称的图论。 假如x能打到y,就连x到y。 于是显然图是对称的。 那么这时候的最大匹配/2,等价于黑白染色后的最大匹配。 然后最大独立集=总点数-最大匹配。 code:#include<cstdio>#include<cstdlib>#include<cstring>#原创 2017-09-10 16:57:35 · 396 阅读 · 0 评论 -
bzoj 2150: 部落战争 最小路径覆盖的做法+证明。
题意:给一个有向无环图,求最小路径覆盖。题解:以前入门时背过结论,等于n-ans。今天由于看不清黑板,数学课上把它想通了(自认为) 对于一条路径,直接做二分图匹配,后一个点匹配前一个点。 转为二分图: 红色为匹配边。 观察发现,左边的点集只有结尾点是没有匹配的。 而其他点都是匹配的。 所以一种可行的解为:总点数-匹配点数。 显然是递减的,所以直接最大匹配就可以。 code:#原创 2017-09-11 21:31:59 · 158 阅读 · 0 评论 -
bzoj 1562: [NOI2009]变换序列
题意;语文不好,概括不出,大概就是一个数可以用另两个数替换,求最小字典序答案。题解:有点玄学的增广路。 tyb的方法 容易想到二分图匹配,但是匹配要求字典序最小,一开始想到在建边的时候改变顺序,但是后来发现一个问题,前面已匹配的有可能会被后面的抢走,这样字典序就变大了。看了hzwer的代码,发现只要倒序匹配就好了,为什么呢?tkj大神告诉我,这样就能让前面的抢后面的,保证字典序最小。 code原创 2017-09-12 21:45:49 · 95 阅读 · 0 评论 -
bzoj 1433: [ZJOI2009]假期的宿舍
题解:裸的二分图匹配。 直接连边跑就可以了。 写错一大堆sb细节,最近这状态简直不忍直视。 code:#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace std;int match[55];int chw[55],tim=0;bool map[55][55];in原创 2017-09-21 09:20:58 · 294 阅读 · 0 评论 -
bzoj 1937: [Shoi2004]Mst 最小生成树
好题原创 2017-10-18 09:36:16 · 419 阅读 · 0 评论 -
bzoj 4808: 马
题意:在图上放最多马,使它们不能相互攻击。题解:同bzoj 攻击装置。3175 一开始狂T,超了个偏移量竟然快了10几倍? 玄学…… code:#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace std;int map[210][210],id=0,n,m;int m原创 2017-09-22 15:39:05 · 341 阅读 · 0 评论 -
二分图匹配复习总结
前言:以前学的二分图匹配是假的。 这次复习,其实就是把以前背的结论加深菜B的理解。 以下一波蒟蒻口胡。二分图上的二分图匹配一、原理:首先有几个概念,匹配边与匹配点,选择了的边叫匹配边,这些边两边的点是匹配点。 交错路即一条未匹配边,一条匹配边交错走的路径。 而增广路是从一个未匹配点,走交错路到另一个未匹配点。 假如我们将这条路径上的匹配状态取反,那可以愉快的发现,...原创 2017-09-12 14:01:43 · 376 阅读 · 0 评论