poj 1962 Corporative Network(并查集)
2014-09-29 10:36
232 查看
题目链接:http://poj.org/problem?id=1962
思路:每个集合中用根节点标记这个集合,每个点到根节点的距离。
code:
思路:每个集合中用根节点标记这个集合,每个点到根节点的距离。
code:
<span style="font-size:18px;">#include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<set> using namespace std; const int maxn=20005; int pa[maxn],d[maxn]; int findset(int x) //找出x节点到根节点的距离 { if(pa[x]!=x) { int root=findset(pa[x]); d[x]+=d[pa[x]]; //更新x节点的距离 return pa[x]=root; } else return x; } int main() { int T; scanf("%d",&T); while(T--) { int n; char str[10]; scanf("%d",&n); for(int i=1;i<=n;i++) { pa[i]=i; d[i]=0; } while(scanf("%s",str)) { if(str[0]=='O') break; if(str[0]=='E') { int x; scanf("%d",&x); findset(x); printf("%d\n",d[x]); } if(str[0]=='I') { int x,y; scanf("%d%d",&x,&y); pa[x]=y; d[x]=abs(x-y)%1000; } } } return 0; } </span>
相关文章推荐
- POJ1962 Corporative Network 并查集
- poj 1962 Corporative Network(带权并查集)
- POJ 1962-Corporative Network (并查集)
- poj1962 Corporative Network(带权并查集)
- poj 1962 带权并查集
- poj 1962 Corporative Network 并查集,很容易超时,大家要注意合并
- poj 1962 Corporative Network 并查集的应用
- 并查集 Corporative Network POJ 1962
- poj 1962 Corporative Network (并查集)
- poj 1962 带路径的并查集
- 并查集 Poj 1838 + 1611 + 1962 + Zoj 2833
- POJ1962 - Corporative Network - 并查集
- POJ - 1962 Corporative Network(带权并查集)
- POJ 1962/ ZOJ 2178: Corporative Network - 并查集
- POJ1962:Corporative Network(并查集)
- POJ 3522 Slim Span (并查集 + 枚举 + kruskal)
- POJ 1703 Find them, Catch them (数据结构-并查集)
- POJ 1733 Parity game 【带权并查集】
- POJ 1182 食物链(并查集拆点)
- POJ 1611 The Suspects(并查集求集合的基数)