HDU 1856 More is better (并查集基本操作)
来源:互联网 发布:悦动圈骑行软件 编辑:程序博客网 时间:2024/06/15 07:34
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.
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.
41 23 45 61 641 23 45 67 8
42
A and B are friends(direct or indirect), B and C are friends(direct or indirect), then A and C are also friends(indirect). In the first sample {1,2,5,6} is the result.In the second sample {1,2},{3,4},{5,6},{7,8} are four kinds of answers.
题解:
本来是不想写这题的题解的,因为太水了,但是居然tle了几次。。后来发现手抖打错了点东西。。下不为例
代码:
#include<stdio.h>#include<cstring>#include<string>#include<iostream>#include<algorithm>#include<math.h>#include<queue>#include<stack>#include<map>using namespace std;const int MAX=1e7+5;int pre[MAX];int mul[MAX];int find(int x){ if(x!=pre[x]) pre[x]=find(pre[x]);//注意点,缩小树的深度以节省时间 return pre[x];}int main(){ int i,j,n,x,y,d1,d2,maxx,max=MAX-5; while(scanf("%d",&n)!=EOF) { if(n==0) { printf("1\n"); continue; } maxx=1; for(i=1;i<=max;i++) { pre[i]=i; mul[i]=1; } max=0; for(i=1;i<=n;i++) { scanf("%d%d",&x,&y); if(x>y) swap(x,y); if(y>max) max=y; d1=find(x); d2=find(y); if(d1!=d2) { mul[d1]+=mul[d2]; pre[d2]=d1; if(mul[d1]>maxx) maxx=mul[d1]; } } printf("%d\n",maxx); } return 0;}
阅读全文
0 0
- HDU 1856 More is better (并查集基本操作)
- hdu 1856 More is better 并查集(二)
- hdu 1856 More is better(并查集)
- hdu 1856 More is better (并查集)
- HDU 1856 More is better(基础并查集)
- HDU 1856 More is better (并查集)
- HDU 1856 More is better (并查集)
- hdu 1856 More is better(并查集)
- hdu 1856 More is better(并查集)
- hdu 1856 More is better (并查集)
- HDU 1856 More is better(并查集)
- hdu 1856 More is better (并查集)
- 【HDU】-1856-More is better(并查集)
- HDU:1856 More is better(并查集+技巧)
- hdu 1856 More is better (并查集)
- HDU 1856 More is better(并查集)
- hdu 1856(并查集)More is better
- HDU-1856 More is better(并查集)
- fastdfs 原理与过程
- Go编程基础—语言运算符
- SpringBoot集成Thymeleaf模板
- 微信小程序使用icon图标
- matlab入门教程二 ----- 常用函数&矩阵基本操作&&数组基本操作
- HDU 1856 More is better (并查集基本操作)
- MAC终端搜索文件find mdfind操作命令
- fgm实例练习笔记-2.3求出数组中所有数字的和
- hibernate复习笔记
- 对过拟合,欠拟合和正则化的理解
- 【Linux】入门常识
- 学习java的实用经验!
- Netty
- Spring(一)