codevs2776寻找代表元
2016-02-19 14:58
267 查看
2776 寻找代表元
时间限制: 1 s
空间限制: 256000 KB
题目等级 : 黄金 Gold
题目描述 Description
广州二中苏元实验学校一共有n个社团,分别用1到n编号。
广州二中苏元实验学校一共有m个人,分别用1到m编号。每个人可以参加一个或多个社团,也可以不参加任何社团。
每个社团都需要选一个代表。谦哥希望更多的人能够成为代表。
输入描述 Input Description
第一行输入两个数n和m。
以下n行每行若干个数,这些数都是不超过m的正整数。其中第i行的数表示社团i的全部成员。每行用一个0结束。
输出描述 Output Description
输出最多的能够成为代表的人数。
样例输入 Sample Input
4 4
1 2 0
1 2 0
1 2 0
1 2 3 4 0
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
各个测试点1s
数据范围
n,m<=200
二分图匹配。。
把社团重新编排点,第i个社团变为m+i。。
然后跑二分图匹配。。
附上本蒟蒻的代码:
时间限制: 1 s
空间限制: 256000 KB
题目等级 : 黄金 Gold
题目描述 Description
广州二中苏元实验学校一共有n个社团,分别用1到n编号。
广州二中苏元实验学校一共有m个人,分别用1到m编号。每个人可以参加一个或多个社团,也可以不参加任何社团。
每个社团都需要选一个代表。谦哥希望更多的人能够成为代表。
输入描述 Input Description
第一行输入两个数n和m。
以下n行每行若干个数,这些数都是不超过m的正整数。其中第i行的数表示社团i的全部成员。每行用一个0结束。
输出描述 Output Description
输出最多的能够成为代表的人数。
样例输入 Sample Input
4 4
1 2 0
1 2 0
1 2 0
1 2 3 4 0
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
各个测试点1s
数据范围
n,m<=200
二分图匹配。。
把社团重新编排点,第i个社团变为m+i。。
然后跑二分图匹配。。
附上本蒟蒻的代码:
#include<cstdio> #include<cstring> using namespace std; struct node { int to,next; }; node edge[40001]; int cnt=1,head[40001],part[40001],n,m,i,ans,x; bool used[40001]; int read() { int w=0,c=1; char ch=getchar(); while (ch<'0' || ch>'9') { if (ch=='-') c=-1; ch=getchar(); } while (ch>='0' && ch<='9') { w=w*10+ch-'0'; ch=getchar(); } return w*c; } void add(int u,int v) { cnt++; edge[cnt].next=head[u]; head[u]=cnt; edge[cnt].to=v; } bool find(int s) { int k; for (k=head[s];k;k=edge[k].next) if (!used[edge[k].to]) { used[edge[k].to]=true; if (!part[edge[k].to] || find(part[edge[k].to])) { part[edge[k].to]=s; return true; } } return false; } int main() { n=read(); m=read(); for (i=1;i<=n;i++) while (x=read()) { if (x==0) break; add(x,m+i); add(m+i,x); } ans=0; for (i=1;i<=m;i++) { memset(used,false,sizeof(used)); if (find(i)) ans++; } printf("%d",ans); return 0; }
相关文章推荐
- tomcat 宕机原因排查
- 关于插件管理器Alcatraz
- Go语言基础
- 昨天霸屏的Apple Pay和营销沾边吗?
- codeforce 573 B. Bear and Blocks
- 改变UITextField placeHolder颜色、字体 、输入光标位置等
- 关于Cookie跨域的问题
- android数据存储之SQLite
- 反编译APK获取代码&资源
- Node.js 之Buffer缓冲区
- “爱加密” 动态脱壳法
- 如何查看已安装的CentOS版本信息
- WinCE 7.0 下如何获取全路径文件名的后缀?
- HTTP错误汇总(404、302、200……)
- 解决Android与服务器交互大容量数据问题
- Crash日志的分析基础
- HTML/CSS行内元素、块元素、空(void)元素、盒模型
- OpenSSL源码升级
- OC高效率52之尽量使用不可变对象
- 公网访问内网SVN