hdu1068】的更多相关文章

Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8473    Accepted Submission(s): 3893 Problem Description the second year of the university somebody started a study on the romant…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1068 二分图的最大独立集数=节点数(n)— 最大匹配数(m) 另外需要注意的是: 本题求出的最大匹配数是实际的两倍需要m/2 #include<iostream> #include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> using namespace std; ;…
解题报告 http://blog.csdn.net/juncoder/article/details/38160591 题目传送门(POJ) 题目传送门(HDU) 题意: 求满足条件的最大集合:集合内不论什么两个人都没有浪漫关系 思路: 跟POJ2771一样的题,变的简单多了.POJ2771解题报告 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> us…
题目链接: 二分匹配的应用 求最大独立集 最大独立集等于=顶点数-匹配数 本体中由于男孩和女孩的学号是不分开的,所以匹配数应是求得的匹配数/2 代码: #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> using namespace std; #define maxn 500 int g[maxn][maxn]; int vis_x[maxn]; int vis_y…
前边和后边性别不同!!!不然NP了 Girls and Boys Problem Description the second year of the university somebody started a study on the romantic relations between the students. The relation "romantically involved" is defined between one girl and one boy. For the…
题意 有n个同学,给出同学之间的爱慕关系,选出一个集合使得集合中的人没有爱慕关系.问能选出的最大集合是多少. 分析 二分图的最大独立集. 最大独立集的意思是,在图中选出最多的点,使他们两两之间没有边,这个顶点的集合就是最大独立集. 先下结论:如果一个图是二分图,|最大独立集| = |V|-|最大匹配数|. 我们这么思考(设匹配数为\(v\)): 如果把二分图的最大匹配从原图中去掉,剩下的\(n-2v\)个顶点肯定是没有边相连的(如果还有边相连,我们可以一定可以再加入到匹配中,那还是个锤子的最大匹…
Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9100    Accepted Submission(s): 4185 Problem Description the second year of the university somebody started a study on the romant…
#include<stdio.h>#include<string.h>const int MAXN=1000;int map[MAXN][MAXN];int n;int linker[MAXN];bool used[MAXN];bool dfs(int a){ for(int i=0;i<n;i++) if(map[a][i]&&!used[i]) { used[i]=true; if(linker[i]==-1||dfs(linker[i])) { link…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1068 题目大意: 有n个人,一些人认识另外一些人,选取一个集合,使得集合里的每个人都互相不认识,求该集合中人的最大个数. 解题思路: 这是求最大独立集 最大独立集 = n - 最小覆盖数 = n - 最大匹配 由于这里xy混在一起,可以拆点求最大匹配,最后求得的是真正的最大匹配的两倍 所以答案 = n - maxmatch() / 2 #include<bits/stdc++.h> using…
#include <cstdio> #include <algorithm> #include <cstring> #include <vector> using namespace std; ; vector<int>map[maxn]; bool mark[maxn]; int link[maxn]; int n; void init(){ ; i <= n; i++){ map[i].clear(); } memset(mark, f…