HDU 1856 More is better 基础并查集★(经典)
来源:互联网 发布:达观数据 融资 编辑:程序博客网 时间:2024/06/07 18:23
一个并查集 计算每个集合的元素 找出元素最多的那个集合,输出元素的个数
输入n=0时也应该输出1
分析:在合并的时候,把集合的个数也合并,然后找出集合个数最大的。
#include<iostream>#include<algorithm>#include<queue>#include<vector>#include<string>#include<cstring>#include<cstdio>const int maxn=100100;const int INF=0x3f3f3f3f;typedef long long LL;using namespace std;int par[maxn];int num[maxn]; //记录集合个数 void init(){for(int i=0;i<maxn;i++) {par[i]=i;num[i]=1; //集合个数初始化为1 }}int find(int a){return par[a]==a?a:par[a]=find(par[a]);}void unit(int a,int b){int p1=find(a);int p2=find(b);if(p1!=p2) {par[p2]=p1;num[p1]+=num[p2]; //合并集合中的个数 }}bool same(int a,int b){return (find(a)==find(b))?true:false; }int main(){//freopen("E:\\ACM\\test.txt","r",stdin);int a,b;int N;while(~scanf("%d",&N)){init();for(int i=0;i<N;i++){scanf("%d%d",&a,&b);unit(a,b);}int ans=0; for(int i=0;i<=N;i++)ans=max(ans,num[i]);printf("%d\n",ans); }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(并查集)
- <c:forEach items="${userList}" varStatus="i" var="item" >
- 网页中<a>标签属性统一设置新窗口打开
- Hadoop SSH 无密码登陆
- C++学习(六)入门篇——确定常量类型
- 广播接受者 时间很短,不要用耗时的,不要超过16s。 这个运行在主线程。
- HDU 1856 More is better 基础并查集★(经典)
- 程序员面试笔记-数据库2
- 如何成为架构师系列:技术选型1
- app引导页
- 高清摄像头MIPI接口与ARM处理器的连接
- C++ algorithm sort自定义排序
- FFmpeg 编译
- 1039. 到底买不买
- 源码分析 There is no getter for property named '*' in 'class java.lang.String