HDU 1856 More is better
2015-11-08 20:17
387 查看
题意:1×10^7个男孩,找出互相之间是朋友关系的人数最多的集合的人数,如果N = 0 ,输出1;
值得一提的是,用C++交怎么也是CE(因为数组过大),G++交就是没事
值得一提的是,用C++交怎么也是CE(因为数组过大),G++交就是没事
#include<stdio.h> #include<iostream> using namespace std; int father[10000005]; int c[10000005]; void init(int n)//初始化 { for(int i = 1 ; i <= n ; i ++) { father[i] = i; c[i] = 1; } } int find(int x) { int i = x; while(father[i] != i) { i = father[i]; } int r = x; int j ; while(father[r]!=r) { j = father[r]; father[r] = i; r = j; } return i; } int maxx ; void merge(int x,int y) {//合并操作 int fx = find(x); int fy = find(y); if(fx!=fy) { father[fx] = fy; c[fy]+=c[fx]; } maxx=max(c[fy],maxx); } int main() { int n,m; n = 10000000; int x,y; while(scanf("%d",&m)!=EOF) { if(m==0) cout<<1<<endl; else { maxx =0; init(n); for(int i = 1 ; i <= m; i ++) { scanf("%d %d",&x,&y); merge(x,y); } cout<<maxx<<endl; } } return 0; }
相关文章推荐
- HDU 1856 More is better
- JS-函数
- Aizu 2595(容斥原理)
- C++智能指针
- 在windows中搭建php开发环境
- Android Handler、Lopper消息驱动机制
- JS-数组
- iOS中的GCD(2)---获取队列方法
- JS-语句
- Git基础操作<二>
- 继承与接口的课后作业
- Physics.IgnoreLayerCollision没有效果
- Android学习之自定义标题栏
- 有序数组的查询
- Light OJ 1354 - IP Checking 【二进制转化】
- Java第一次写的流布局图形界面,留个纪念
- zufe oj Problem H: 简单数学题 java
- Java第一次写的流布局图形界面,留个纪念
- ApplicationOnline_Tips&Review
- 归档