死锁 并查集
2012-11-13 21:30
295 查看
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1924
解法之一就是用并查集把点集构成树,如果构成的不是树而有一些点形成环路,那就是说明存在死锁了
题目代码:
解法之一就是用并查集把点集构成树,如果构成的不是树而有一些点形成环路,那就是说明存在死锁了
题目代码:
#include<iostream> #include<stdio.h> using namespace std; int parent[1000]; void UFset(int n) { for(int i=0;i<n;i++) parent[i]=i; } int Find(int x) { if(x!=parent[x]) { return parent[x]=Find(parent[x]); } return x; } int main() { int flag; int T; int P,R,E1,E2,p,r; scanf("%d",&T); for(int k=1;k<=T;k++) { flag=1; scanf("%d%d%d%d",&P,&R,&E1,&E2); int N=P+R; UFset(N); while(E1--) { scanf("%d%d",&p,&r); r=Find(r+P); p=Find(p); if(p==r) flag=0; parent[r]=p; } while(E2--) { scanf("%d%d",&r,&p); r=Find(r+P); p=Find(p); if(p==r) flag=0; parent[p]=r; } printf("Case %d: ",k); if(flag==1) puts("Impossible"); else puts("Possible"); } return 0; }
相关文章推荐
- POJ1988 Cube Stacking [并查集]
- uva 10158(并查集)
- 并查集——A bug s life
- Java多线程之死锁情形(持续更新)
- How Many Tables HDU 1213(并查集)
- 多线程的那点儿事(之避免死锁)
- 杀掉死锁的sqlserver进程
- 异步请求引发的Chrome死锁
- 并查集
- POJ1-1611-The Suspects【并查集】
- hdu 3047 Zjnu Stadium(带权并查集)
- POJ 3522 Slim Span (并查集 + 枚举 + kruskal)
- 并查集例题-The Suspects
- Oracle常见死锁发生的原因以及解决方法
- 数据结构——并查集
- POJ1611--The Suspects--并查集裸题
- 查询Sqlserver数据库死锁的一个存储过程(转)
- 一个最不可思议的MySQL死锁分析
- 并查集习题
- bzoj1015: [JSOI2008]星球大战starwar(并查集+倒推)