![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分图匹配
nlj1999
这个作者很懒,什么都没留下…
展开
-
1059: [ZJOI2007]矩阵游戏
二分图匹配其实可以直接邻接矩阵建图,不过我用的邻接表。如果第i行第j列为1,则S中节点i向T中节点j连边,若最大匹配数等于n则有解,否则无解。数组开小了没1A。。。。。。。。#include#include#includeusing namespace std;struct Edge{int to,next;}e[50005];int head[205],cnt,link原创 2015-12-09 19:51:27 · 367 阅读 · 0 评论 -
1191: [HNOI2006]超级英雄Hero
很裸的二分图匹配。然而本沙茶没读题WA了三次。。。。。。。。。#include#include#includeusing namespace std;struct Edge{int to,next;}e[5005];int head[2005],cnt,linked[1005];bool vis[1005];void ins(int u,int v){ cnt++;e[cn原创 2015-12-09 20:02:47 · 616 阅读 · 0 评论 -
ZOJ 1654 Place the Robots
04年论文题《黄源河--浅谈图论模型的建立与应用》#include#include#include#includeusing namespace std;const int inf=1e9;struct Edge{int to,next,v;}e[200005];int head[5005],cnt,d[5005];void ins(int u,int v,int w){ e原创 2016-03-04 13:10:24 · 274 阅读 · 0 评论 -
COGS 336 && Vijos 1018 && NOI2003 智破连环阵
楼教主论文里的题这么多剪枝吓坏我了忽然想起来我WC的时候第一题前两个点也是搜索+最大流,不知道能不能剪枝把后面的数据水过去呢233333然而并不能想到什么剪枝#include#include#include#includeusing namespace std;vectorg[105];bool vis[105],can[105][105][105];int maxl[1原创 2016-03-05 09:05:22 · 822 阅读 · 0 评论 -
WC2016 挑战NPC
NPC,即Non_Player Character,作为游戏很重要的一种存在……哎不对,扯远了。这题出题人卖萌,明显不是NPC问题。我们可以发现(通过前几个点找一找规律什么的)这题可以建立一个一般图最大匹配模型。首先将所有的筐子拆成3个点,任选其中两点连边,然后对于每一个条件,将对应球与筐子的三个点分别连边。可以证明(不会),最大匹配中所有球一定是匹配了的。于是就可以用带花原创 2016-02-02 14:24:44 · 892 阅读 · 0 评论 -
BZOJ 3140: [Hnoi2013]消毒
首先简单分析一下题目,可以找到一种很好的策略,即每次选一个切面进行消毒,费用为1。然后我们考虑一下贪心,每次找点最多的那个面,把它消掉,直到没有点了。显然这么做是错的QAQ俗话说得好,枚举可以作为其他算法的基础不妨设a然而这么做是有风险的,最坏情况复杂度是3*2^17*17*17,很可能炸掉啊所以我们考虑剪个枝什么的由于匈牙利算法有个神奇的特性,它支持动态加边,也就是我原创 2016-04-08 16:40:18 · 636 阅读 · 0 评论 -
BZOJ 3571: [Hnoi2014]画框
一看TM就不会做赶紧学了一发最小乘积生成树和最小乘积最大匹配大概就是把每个完备匹配后的结果看成一个点(sigma(a),sigma(b)),发现答案都在下凸壳上,然后用分治递归找下凸壳就好了。首先找到下凸壳两端的点(横坐标最小和纵坐标最小的两个点),然后连线,找到离线最远的点(叉积推公式,KM/费用流找匹配),然后分治,直到最远的点就是两点之一了,也就是两点是下凸壳上相邻的两点。(原创 2016-04-10 09:54:59 · 376 阅读 · 0 评论 -
BZOJ 3168: [Heoi2013]钙铁锌硒维生素
对着网上下的数据拍发现过不去,交上去就1A了。。。。。。看discuss才发现标程是错的。。。。。。。根据14年的论文,A为n维向量的一组基,B中任意行向量属于Span(A),于是可以得出系数矩阵C,且C*A=B,A中行向量x能被B中行向量y替换当且仅当y的表示向量(C中的一个列向量)中x位置的系数不为0,于是C的转置即为二分图的邻接矩阵,问题转化为二分图最小字典序最大匹配首先跑一遍匈原创 2016-05-13 16:23:59 · 1106 阅读 · 0 评论 -
BZOJ 4554: [Tjoi2016&Heoi2016]游戏
(楼下的小学生好烦啊,老是在那里红星闪闪QAQ,感觉要被洗脑了,md一整天都是智障状态)这题没有硬石头就直接跑二分图匹配就好了有硬石头就把这行/列拆一拆#include#include#include#include#include#include#include#include#include#define rep(i,l,r) for(int i=l;i<=r;i原创 2016-05-21 18:30:09 · 405 阅读 · 0 评论