poj3692】的更多相关文章

题意:有男孩和女孩,男孩之间全部认识,女孩之间全部认识,一部分男孩和女孩认识,现在希望选出一些孩子,这些孩子都相互认识. 方法:正的做不好做,观察他的补图,补图之间无关系的边就是原图有关系的.补图中的独立集不正是相互都没有连边么,反过来说,它们在原图中不正是两两都有连边么. 最小割: #include<stdio.h> #include<string.h> #include<queue> #define INF 99999999 using namespace std;…
首先这道题很容易想到二分图相关(给的很明确了): 但是我们发现,男孩之间都互相认识,女孩之间也互相认识 这样是不能划分点集的 但是男孩之间都互相认识,女孩之间也互相认识,所以男孩和男孩,女孩和女孩之间不存在不认识关系: 如果以不认识作为边的话,这样不就能划开点集吗? 于是我们换一个思维,要找最多的男女生互相认识,不就是找最多的男女生之间不存在不认识关系吗 所以,我们在不认识之间的男女之间连边,然后对这个二分图求最大独立集即可 最大独立集=点集x+点集y-最大匹配数(最小点覆盖) 要注意思维的转化…
Kindergarten Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5317   Accepted: 2589 Description In a kindergarten, there are a lot of kids. All girls of the kids know each other and all boys also know each other. In addition to that, some…
Kindergarten Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6882   Accepted: 3402 Description In a kindergarten, there are a lot of kids. All girls of the kids know each other and all boys also know each other. In addition to that, some…
题意: 有男生女生,男生都认识双方,女生都认识双方,给出一些男女关系,问最大拿多少个人,使得所有人都认识双方. 思路: 原图最大团=总结点数-[[补图(补图为二分图)]的最大独立集=最大完全子图的顶点数]: //#include<bits/stdc++.h> #include<cstdio> #include<string.h> #include<algorithm> using namespace std; typedef long long LL; co…
题目链接:http://poj.org/problem?id=3692 Kindergarten Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7371   Accepted: 3636 Description In a kindergarten, there are a lot of kids. All girls of the kids know each other and all boys also know e…
题意:      n个男孩和m个女孩,给你他们谁和谁彼此了解,问你要找到一个集合,使得这个集合中的男孩和女孩相互了解,并且人数最多. 思路:      简单题目,其实就是在求最大点权独立集元素个数,先说下点券独立集的概念,就是给你一些关系,让你找到一个最大的集合,使得集合中的任意两个人之间都不会有关系,用的是匈牙利算法,对于这个题目我们可以吧不了解的连接到一起,这样得到的就是集合中任意两人都了解的最大人数了,最大点券独立集元素个数 = n + m - 最大匹配数. #include<stdio.…
二分图模型中的最大独立集问题:在二分图G=(X,Y;E)中求取最小的顶点集V* ⊂ {X,Y},使得边 V*任意两点之间没有边相连. 公式: 最大独立集顶点个数 = 总的顶点数(|X|+|Y|)- 最大匹配数 poj3692 题意:幼儿园有G个小女孩和B个小男孩,小女孩彼此之间互相认识,小男孩彼此之间互相认识.一些小女孩与一些小男孩之间也互相认识.现在老师要选一些小朋友做一个游戏,这些小朋友之间必须互相认识.问老师最多可以选多少个小朋友. 解题:满足X集合,Y集合,E边集合的题目可以用二分图模型…