并查集uva1160
来源:互联网 发布:linux 创建文件夹 编辑:程序博客网 时间:2024/05/22 17:23
题意:简单化合物是由两种元素组成,如果有k种化合物,并且恰好有k中元素就会爆炸,按输入顺序给出化合物,问有多少化合物不能放入。
如果两种元素已经在集合里,就不能放入。可以把每个元素看成顶点 一个化合物作为一条边 当整个图存在环的时候 组成环的边对应的化合物就是危险的 否则是安全的。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=100010;int pra[maxn],rank[maxn];int find(int x){ if(pra[x]==x)return x; return pra[x]=find(pra[x]);}void init(){ for(int i=0;i<maxn;i++) { pra[i]=i; rank[i]=0; }}void unite(int x,int y){ if(rank[x]<rank[y]) pra[x]=y; else { pra[y]=x; if(rank[x]==rank[y])rank[x]++; }}int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif int a,b,ans=0; init(); while(cin>>a) { if(a==-1){cout<<ans<<endl;ans=0;init();continue;} cin>>b; int x=find(a),y=find(b); if(x==y){ans++;continue;} unite(x,y); } return 0;}
0 0
- 并查集uva1160
- uva1160 - X-Plosives (并查集)
- 并查集uva1160 - X-Plosives
- HDU3938 并查集 并查集
- 并查集(集并查)
- uva1160 ADT
- HDU1232 并查集<并>
- 并查集
- 数据结构-并查集
- 并查集
- 并查集!
- 并查集
- 并查集
- 并查集
- 并查集
- 并查集总结
- 并查集学习
- 并查集
- 深入redis内部--内存管理
- redis虚拟内存---官方文档
- 深入redis内部--事件处理机制
- 华邦外贸经验谈:如何有效进行报关手续
- SVN命令行怎么用?--转百度知道
- 并查集uva1160
- How to Install Eclipse C/C++ Development Tool--转
- 用C语言实现Ping程序功能---转
- ping 原理与ICMP协议---转
- TCP/IP协议簇分层详解---转
- Leetcode Evaluate Reverse Polish Notation
- java.net.SocketException四大异常解决方案---转
- 深入redis内部---网络编程
- JAVA基础加强之对javaBean的内省简单操作