杭电1856
2016-02-04 18:09
731 查看
Problem Description
Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements.
Mr Wang selected a room big enough to hold the boys. The boy who are not been chosen has to leave the room immediately. There are 10000000 boys in the room numbered from 1 to 10000000 at the very beginning. After Mr Wang’s selection any two of them who are still in this room should be friends (direct or indirect), or there is only one boy left. Given all the direct friend-pairs, you should decide the best way.
Input
The first line of the input contains an integer n (0 ≤ n ≤ 100 000) - the number of direct friend-pairs. The following n lines each contains a pair of numbers A and B separated by a single space that suggests A and B are direct friends. (A ≠ B, 1 ≤ A, B ≤ 10000000)
Output
The output in one line contains exactly one integer equals to the maximum number of boys Mr Wang may keep.
Sample Input
4
1 2
3 4
5 6
1 6
4
1 2
3 4
5 6
7 8
Sample Output
4
2
此处并查集略有改变,具有能记录每棵树有几个节的功能,算法就是加了一个数组y[1000];
每次加上一个节点都把这个节点的成员加给根节点。
Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements.
Mr Wang selected a room big enough to hold the boys. The boy who are not been chosen has to leave the room immediately. There are 10000000 boys in the room numbered from 1 to 10000000 at the very beginning. After Mr Wang’s selection any two of them who are still in this room should be friends (direct or indirect), or there is only one boy left. Given all the direct friend-pairs, you should decide the best way.
Input
The first line of the input contains an integer n (0 ≤ n ≤ 100 000) - the number of direct friend-pairs. The following n lines each contains a pair of numbers A and B separated by a single space that suggests A and B are direct friends. (A ≠ B, 1 ≤ A, B ≤ 10000000)
Output
The output in one line contains exactly one integer equals to the maximum number of boys Mr Wang may keep.
Sample Input
4
1 2
3 4
5 6
1 6
4
1 2
3 4
5 6
7 8
Sample Output
4
2
此处并查集略有改变,具有能记录每棵树有几个节的功能,算法就是加了一个数组y[1000];
中心函数 for(int i=0;i<N;i++) { cin>>a>>b; k=find(a); g=find(b); if(k!=g) { x[g]=k; y[k]+=y[g]; } }
每次加上一个节点都把这个节点的成员加给根节点。
AC代码 #include<iostream> #include<algorithm> using namespace std; int x[10000000]; int y[10000000]; int find(int n) { if(x ==n) return n; else return x =find(x ); } int main() { int n; while(cin>>n) { int a,b,k,g; for(int i=0; i<=10000000; i++) { x[i]=i; y[i]=1; } for( int i=0; i<n; i++ ) { cin >> a >> b; k = find(a); g = find(b); if( k != g ) { x[g] = k; y[k] += y[g]; } } int Max=0; for(int i=1; i<10000000; i++) { if(x[i]==i) if(y[i]>Max) Max=y[i]; } cout<<Max<<endl; } }
相关文章推荐
- 【CF 应用开发大赛】IT Share(IT分享网)
- IT职场英语,必须学会
- it人员要看饮食保健养生谚语
- 个人随笔——衰人自叙卷壹
- IT人员迅速提升自我效率的十大方法
- 搞IT的到底怎么了
- 史蒂夫-乔布斯十大励志名言(中英对照)
- IT大事件—分享IT界最新的IT大会——互联网大会,技术大会.................
- 大学生IT求职,不缺机会,积累项目实战经验是关键
- 职业规划和技术发展
- 奥运对中国IT行业的影响
- 某大型IT公司招网络工程师认证试题精选(要求:CCNA或HCNE以上)
- 全国信息化工程师院校IT双证书职业课程认证
- PHP date()函数警告: It is not safe to rely on the system解决方法
- 游侠推荐:降级论
- 浅谈IT管理
- 第一部分 思科九年 一(8)
- 职场中不可深交的5类人
- 注册表键值大全,***常用命令和快捷键