题目链接 题意:求哪些点一定在最大匹配中. 这儿写过,再写一遍吧. 求哪些点不一定在最大匹配中.首先求一遍最大匹配,未匹配点当然不一定在最大匹配中. 设一个未匹配点为A,如果存在边A-B,且存在匹配边B-C,那么可以A替换C,即匹配边变成A-B.最大匹配数不会改变. 所以C,也就是与未匹配点相邻的点的匹配点,不一定在最大匹配中. 这样DFS一遍就行了,这儿的复杂度是\(O(n+m)\). 求最大匹配的时候,匈牙利不是\(O(nm)\)吗,竟然能过么.. 还是写一遍网络流.Dinic是\(O(\s…
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3546 题意:给定一个二分图.(AB两个集合的点为n,m),边有K个.问去掉哪些点后最大匹配会减少. 思路:首先建图跑最大流.然后从s开始dfs一次,若能跑到B集合中的点x,那么说明x可以匹配A集合中的某点,那么x删掉也无所谓.从t开始dfs一次,类似,到达s中的y,那么y删掉也无所谓. const int INF=1000000005; const int N=20005; st…
题解:给出一个二分图,问你取点哪个点会使得二分图匹配数减少. 解法:其实就是问二分图匹配的必须点.先对初始二分图做一次最大匹配. 现在考虑左边点,看残余网络上的边重新构图:如果是匹配边那么就从右往左连边,如果是非匹配边就从左往右连边.然后从每个非匹配点出发dfs标记每一个访问过的点.最后是匹配点且未被访问过的就是必须点.为什么呢?仔细考虑新构的图,从未匹配点出发的其实也是一条增广路,如果这条增广路能访问到 已匹配点 .那么我们就可以把这条增广路取反得到另一种匹配方案,也就是说这个被访问到的 已匹…
题目: http://cojs.tk/cogs/problem/problem.php?pid=409 409. [NOI2009]变换序列 ★★☆   输入文件:transform.in   输出文件:transform.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]        对于N个整数0, 1, ……, N-1,一个变换序列T可以将i变成Ti,其中 定义x和y之间的距离.给定每个i和Ti之间的距离D(i,Ti), 你需要求出一个满足要求的变换序列T.如…
传送门 解题思路 可以发现天兵不用管,答案的一个上界是\(2*k\),就是天兵一个个换.刚开始写了个拆\(6\)点的网络流,调了半天发现自己假了..说说正解,首先可以发现交换士兵其实就是种类的交换,那么可以对于每一个点算出它距离所有点的距离,距离就是最少换几次,这个可以\(spfa\)求出,之后发现这个很像二分图匹配,可以二分答案表示用几次超能力,然后跑二分图匹配即可. 代码 #include<iostream> #include<cstdio> #include<cstri…
Description 一个舞会有N个男孩(编号为1..N)和M个女孩(编号为1..M),一对男女能够组成一对跳舞当且仅当他们两个人互相认识. 我们把一种人定义成这个舞会的life:当且仅当如果他(她)不参加这个舞会,那么能够同时配对的最大舞伴对数会下降. 现在知道男生和女生之间的认识关系,需要你求出男生和女生中的是这个舞会的life的人的编号. Input 第一行3个整数N,M,K,表示N个男生,M个女生,K对关系. 接下来K行,每行两个整数a_i b_i,表示第a_i个男生和第b_i个女生相…
http://www.lydsy.com/JudgeOnline/problem.php?id=1191 一眼题,笑嘻嘻地写了匈牙利,提交..WA了?不科学!!!!!数组小了??不思考了,改大提交,.WA..瞬间感觉没希望了0.0好不容易的一眼题都错了...题解.恩,,是二分图没错,但是在一个奇怪的地方加了breakT_T.百思不得其解,why? 看到某题解的解释然后重新看题后0.0,加上break提交,A了..(坑人的在:“只有当选手正确回答一道题后,才能进入下一题”) orz #includ…
http://www.lydsy.com/JudgeOnline/problem.php?id=1059 本题可以看出,无论怎样变化,在同一行和同一列的数永远都不会分手---还是吐槽,,我第一眼yy了一个做法,就是直接判断读入的是否行或者列被占用了,如果没有,就累计,最后判断累计的数目是否为n即可...样例过啦-提交-..wa了... why??不知道...自己测了几个样例都过了0.0,,,,先不管,,写个正解吧,,看了题解是二分图,每列都找一行,看看能否匹配,如果能匹配完,此题有解(显然的吧)…
题目链接 双倍经验:BZOJ.4276.[ONTAK2015]Bajtman i Okrągły Robin(然而是个权限题.区间略有不同) \(Description\) 有\(n\)个任务,完成一个任务需要\(1\)时刻,并会获得\(v_i\)的收益(只获得一次). 每一时刻只能做一个任务,且每个任务只能在\([l_i,r_i]\)的时刻内做.求最大收益. \(n\leq5000,l_i,r_i\leq10^8\). \(Solution\) 我为啥看不懂堆的\(O(n^2\log n)\)…
3175: [Tjoi2013]攻击装置 Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1)求在装置互不攻击的情况下,最多可以放置多少个装置. Input 第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示矩阵. Out…