hdu 1272并查集
来源:互联网 发布:北京供销社大数据集团 编辑:程序博客网 时间:2024/05/19 04:06
#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<string>#include<cstdlib>#include<ctime>#include<vector>#include<queue>#include<stack>#include<map>#include<set>#include<algorithm>using namespace std;struct node{ int data; int rank; int parent;};int prove;node mpt[100005];int find(int x){ if(x!=mpt[x].parent)return find(mpt[x].parent); else return x;}void unit(int x,int y){ x=find(x); y=find(y); if(x==y)prove=1; if(mpt[x].rank>mpt[y].rank)mpt[y].parent=x; else if(mpt[x].rank<mpt[y].rank)mpt[x].parent=y; else { mpt[x].parent=y; mpt[y].rank++; }}int a[1000000];int main(){ while(1) { prove=0; int i; for(i=1;i<=100000;i++) { mpt[i].data=i; mpt[i].rank=0; mpt[i].parent=i; } int p=0; while(1) { int x,y; scanf("%d%d",&x,&y); if(x==-1&&y==-1)return 0; if(x==0&&y==0)break; if(x==y)continue; a[++p]=x; a[++p]=y; unit(x,y); } int ans=0; for(i=1;i<=p;i++) { int v=find(a[i]); if(ans==0)ans=v; if(ans!=v)prove=1; } if(prove==1)printf("No\n"); else printf("Yes\n"); } return 0;}//YSF友情赞助!!!!
0 0
- HDU-1272(并查集)
- HDU 1272 并查集
- HDU 1272 并查集
- hdu 1272 并查集
- HDU 1272 并查集
- hdu 1272 并查集
- hdu 1272并查集
- HDU 1272 并查集
- hdu 1272 并查集
- HDU 1272 并查集
- HDU 1272 并查集
- HDU 并查集 1272
- hdu 1272 并查集
- HDU 1272(并查集)
- HDU 1272 (并查集)
- hdu 1272 并查集简单题目
- hdu 1272 并查集模版
- hdu--1272--并查集(捏个捏个)
- Java复习笔记1【Java的基本运算】
- 0.11之路(五):激活进程0
- 12月7号心得
- libsvm 使用
- 【解决方法】ECall 方法必须打包到系统模块中
- hdu 1272并查集
- Google Breakpad 完全解析(二) —— Windows前台实现篇
- RQNOJ29 愚蠢的组合数、题解、
- object-c的Retain and Release(保留与释放)
- 压缩感知理论的理解
- html&JavaScript&ajax部分
- hdu 1198并查集
- 12月20号心得
- 从键盘输入一个表达式,试编写算法计算表达式的值。