SDUT2801/2802_英语系列(一)/(二)(并查集)
2014-03-01 14:17
435 查看
英语系列(一)
Time Limit: 1000MS Memory limit: 65536K
题目描述
众所周知,英语考试有几套不同的试卷,而且,为了防止我们抄袭旁边同学的,一般附近同学的试卷和你的试卷不一样。但是,我们还是知道了一些同学的试卷是相同的,假设有n个同学,编号为0~n-1,你的编号为0,,根据我们已知的信息,求还有多少人的试卷和你的试卷是相同的。
输入
多组输入,每组第一行,有两个整数n,m(2 <= n <= 100000, 0 <= m <= 10000),代表n个同学,m条我们已知的信息。接下来m行,每行有两个整数a,b(0 <= a,b <= n-1)。
代表a同学和b同学的试卷是相同的。
输出
每组输出一行,输出和你的试卷相同的同学的个数。
示例输入
5 2 0 1 1 2 5 2 1 2 2 3
示例输出
2 0
提示
解题报告#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int B[100010]; int v[100010]; int find(int x) { if(B[x]!=x) { B[x]=find(B[x]); } return B[x]; } void bin(int x,int y) { int xx=find(x); int yy=find(y); if(xx!=yy) { B[xx]=yy; } } int main() { int n,m; int i,j; int a,b; while(~scanf("%d%d",&n,&m)) { for(i=0;i<n;i++) B[i]=i; for(i=0;i<m;i++) { scanf("%d%d",&a,&b); v[a]=v[b]=1; bin(a,b); } int c=0; int w=find(0); for(i=0;i<n;i++) { if(find(i)==w&&v[i]) c++; } printf("%d\n",c-1); } return 0; }
英语系列(二)
Time Limit: 1000MS Memory limit: 65536K
题目描述
昨天,小明期待已久的英语出成绩了,不幸的是,小明没有及格(::>_<::)。通过和自己的好友聊天,小明知道了很多好友的成绩。于是,无聊的小明自己划分了一些分数段,并统计自己的好友在每个分数段的人数(有些分数段只有一个人),他想知道人数最多的分数段有多少人。可是,小明数学不太好,你能帮一下他吗? 假设他有n名好友,好友编号为0~n-1。
输入
多组输入,每组第一行是两个整数n,m(2 <= n <= 10000, 0 <= m <=1000)。接下来m行,每行两个整数a,b(0 <= a,b <= n-1)。
代表好友a和好友b在同一个分数段上。
输出
输出一行,输出人数最多的分数段有多少人。
示例输入
4 2 1 2 2 3 6 3 0 1 2 3 2 4
示例输出
3 3
提示
解题报告
自己写的超时了。。。无力修改。。。
还是小伙伴的思路好使。。。
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int B[10010]; int bb[10010]; int find(int x) { if(x!=B[x]) B[x]=find(B[x]); return B[x]; } void bin(int x,int y) { int xx=find(x); int yy=find(y); if(xx!=yy) { B[xx]=yy; } } int main() { int n,m,i,j; int a,b; while(~scanf("%d%d",&n,&m)) { memset(bb,0,sizeof(bb)); for(i=0; i<n; i++) B[i]=i; for(i=0; i<m; i++) { scanf("%d%d",&a,&b); bin(a,b); } for(i=0; i<n; i++) bb[find(i)]++; int max=-1; for(i=0; i<n; i++) if(max<bb[i]) max=bb[i]; printf("%d\n",max); } return 0; }
相关文章推荐
- hdu4217 Data Structure? 线段树
- jvm 启动参数设置(转载)
- (转)Java Applet与Java Application的区别
- Hibernate: Encountered a duplicated sql alias [] during auto-discovery of a native-sq
- Google Charts插件(二)
- Android开发者必知的开发资源
- String,StringBuffer与StringBuilder的区别以及String为什么是不可变的?
- Android学习笔记TableLayout布局
- 消息中间件及WebSphere MQ入门(转载)
- Android开发者必知的开发资源
- 漫谈凭脉用药--何少奇
- 自动创建设备节点
- NYOJ594 还是A+B
- NYOJ594 还是A+B
- Google Charts插件(一)
- 读《程序员的SQL金典》[3]--表连接、子查询
- jquery post 同步异步总结
- 欧拉计划 第2题
- Apache与Tomcat整合
- android Uri获取真实路径转换成File的方法