hdu4685】的更多相关文章

Prince and Princess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1267    Accepted Submission(s): 358 Problem Description There are n princes and m princesses. Princess can marry any prince. B…
意甲冠军:今天,有n王子,m公主.现在给他们配对,与王子会嫁给一个男人,他喜欢.公主无法做出选择. 这标题去咬硬,还有一类似的题目poj1904.那个题目也是给王子与公主配对,但那个是王子公主各n个,且给定了一个完美匹配,然后求每一个王子能够做出的选择且不影响最大匹配数目.那题是先建各条喜欢关系的边.然后在由被选择的公主连一条边到与之配对的王子.强连通之后假设一个王子和一个公主在一个强连通分量中,那么他们结合的话,他们的还有一半也各自能在强连通中找到另外的匹配,就是符合题意的结果了. 这个题目算…
题意: 有n个王子和m个公主,每个王子都会喜欢若干个公主,也就是王子只跟自己喜欢的公主结婚,公主就比较悲惨, 跟谁结婚都行.然后输出王子可能的结婚对象,必须保证王子与任意这些对象中的一个结婚,都不会影响到剩余的王子的配对数,也就是不能让剩余的王子中突然有一个人没婚可结了. 思路: 对每个没有匹配的公主,建一个虚拟的王子,让他们变成匹配,然后由这个虚拟王子向每个公主建边.对每个没有匹配的王子,建一个虚拟的公主,让他们变成匹配,然后每个王子向这个虚拟公主建边.求一个Tarjan,判断是否为1个强连通…
题解: 二分图匹配 对于每一个单身狗 见一个虚拟的人 然后就可以做了 代码: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; +; struct EDGE{int v,next;}edge[M]; int first[N],low[N],dfn[N],sta[M],belong[N]; int ans[N],match[N],flag[N]; bool insta…
Prince and Princess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2281    Accepted Submission(s): 677 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4685 Description: There are n princes and m…
题意:       给你n个王子和m个公主,每个王子可以和自己喜欢的公主结婚,问你在不影响最大匹配的前提下每个王子都可以去哪些公主. 思路:       所有王子向他喜欢的公主连一条边,然后匹配一遍,之后再每个匹配的公主连一条指向娶她的王子一条边,然后对于那些光棍王子和单身公主们,其实他们可以和任意他们喜欢的人匹配,因为可以让自己幸福,然后拆散一对别人已经匹配好的,虽然不道德,但是仍然满足总的最大匹配数不变,所以对于每一个光棍男我们就给他虚拟出一个女朋友,所有人都喜欢这个女的,但是这个女的只喜欢…
hdu4685:http://acm.hdu.edu.cn/showproblem.php?pid=4685 题意:有n个王子和m个公主,每个王子都会喜欢若干个公主,也就是王子只跟自己喜欢的公主结婚公主就比较悲惨, 跟谁结婚都行,然后输出王子可能的结婚对象. 题解:这一题看了题解之后,也还是只知道是怎么做的,至于为什么那么做还是不懂啊. 解题步奏:首先让王子和喜欢的人之间建立一条边,然后,求一个最大匹配res,然后左边王子加入m-res个虚拟王子,右边加入n-res虚拟公主,所以新加入的王子喜欢…
题意:       有n个王子,n个公主,然后给你每个王子喜欢的公主,最后问你在不影响最大匹配的前提下,每个王子可以匹配那些公主. 思路:       是hdu4685的减弱版,之前研究过hdu4685所以这个题目直接水过了,对于这个题目,我们把王子和他喜欢的公主之间建连边,建立一个二分图,然后对于题目给的已经匹配好了的(有的题目没给,直接就自己跑一边二分匹配自己找),之间建立反边,就是建立公主到王子的边,然后一遍强联通,如果同意个分量里的男女可以匹配.这样记录每一个然后sort一下就行了. #…