2524 1611 并查集
来源:互联网 发布:丙子胡乱知乎 编辑:程序博客网 时间:2024/06/06 01:10
http://acm.pku.edu.cn/JudgeOnline/problem?id=2524
http://acm.pku.edu.cn/JudgeOnline/problem?id=1611
code 2524
- #include<iostream>
- using namespace std;
- int pre[50010],num;
- int find(int a);
- void un(int a,int b);
- int main()
- {
- int n,m;
- int i,a,b,T(1);
- freopen("in.txt","r",stdin);
- while(cin>>n>>m&&n&&m)
- {
- num=n;//初始化是每个人的信仰都不同
- for( i=1; i<=50005; i++)
- pre[i]=0;
- for( i=1; i<=m; i++)
- {
- scanf("%d%d",&a,&b);
- un(a,b);
- }
- cout<<"Case "<<T++<<": "<<num<<endl;
- }
- return 0;
- }
- int find(int a)//路径压缩
- {
- int t=a,z;
- while(pre[t]!=0)t=pre[t];
- while(a!=t)
- {
- z=pre[a];
- pre[a]=t;
- a=z;
- }
- return t;
- }
- void un(int a,int b)
- {
- //int aa,bb;
- int aa,bb;
- aa=find(a);
- bb=find(b);
- if(aa==bb&&aa)//祖先一样的情况
- return;
- if(aa==0)
- pre[bb]=aa;
- else
- pre[aa]=bb;
- num--;
- }
code 1611
- #include<iostream>
- #include <algorithm>
- using namespace std;
- short pre[30001],num[30001];
- void un( int a, int b);
- int find(int a);
- int main()
- {
- int n, i, m,a,j,b,temp;
- freopen("in.txt","r",stdin);
- while(cin>>n>>m&&m||n)
- {
- for( i=0; i<30001; i++)
- pre[i]=i;
- for( i=0; i<m; i++)
- {
- cin>>a;
- for( j=0; j<a; j++)
- {
- cin>>b;
- if(j==0)
- temp=b;
- un(temp,b);
- }
- }
- for( i=0; i<30001; i++)
- find(i);
- sort(pre,pre+30001);
- n=0,j=0;
- while(!pre[n++]) j++;
- cout<<j<<endl;
- }
- return 0;
- }
- int find( int a)//未用路径压缩
- {
- int t;
- t=a;
- while(pre[t]!=t) t=pre[t];
- pre[a]=t;
- return t;
- }
- void un( int a, int b)
- {
- int aa,bb;
- aa=find(a);
- bb=find(b);
- if(aa==0)
- pre[bb]=aa;
- else
- pre[aa]=bb;
- }
- 2524 1611 并查集
- 并查集2524
- 并查集 poj 1611 2524 1182
- poj 2524 并查集
- 并查集 POJ 2524
- poj-2524 并查集
- poj 2524(并查集)
- POJ-2524 并查集
- poj 2524(并查集)
- POJ 2524 并查集
- POJ 2524 查并集
- POJ 2524 并查集
- POJ 2524 并查集
- poj 2524 并查集
- POJ 2524 并查集
- poj 2524[并查集]
- POJ 2524 (并查集)
- POJ 2524 并查集
- 疯狂的程序员77
- c语言指针
- 编译安装新内核后无法进入系统提示Kernel Panic
- 谷歌浏览器的源码分析(12)
- WinCE系统的编译过程 转自唐勉的博客
- 2524 1611 并查集
- 疯狂的程序员78
- Linux内核解读入门
- Linux 汇编语言开发指南(二)
- 疯狂的程序员(79)
- 读核日记
- 第3章 感受(一)——3.3. Hello world 函数版
- ELF文件格式(中文)(一)
- Nebula3绘制基本图元