LA 3027 合作网络(并查集)(训练指南)
2013-04-17 18:26
260 查看
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4075
I u v:把u的父亲结点设为v,距离为|u-v|%1000.输入保证执行指令前u没有父节点。
E u:询问u到根结点的距离。
I u v:把u的父亲结点设为v,距离为|u-v|%1000.输入保证执行指令前u没有父节点。
E u:询问u到根结点的距离。
#include <cstdio> #include <algorithm> using namespace std; const int maxn =20000+10; int pa[maxn],d[maxn]; int findset(int x)///路径压缩,同时维护d[i]:结点i到树根的距离 { if(pa[x]!=x) { int root=findset(pa[x]); d[x]+=d[pa[x]]; return pa[x]=root; } else return x; } int main() { int T; scanf("%d",&T); while(T--) { int n,u,v; scanf("%d",&n); for(int i=1;i<=n;i++)///初始化 pa[i]=i,d[i]=0; char m[9]; while(scanf("%s",m)&&m[0]!='O') { if(m[0]=='E') { scanf("%d",&u); findset(u); printf("%d\n",d[u]); } else { scanf("%d%d",&u,&v); pa[u]=v; d[u]=abs(u-v)%1000; } } } return 0; }
相关文章推荐
- 《算法竞赛-训练指南》第三章-3.6_LA 3027(并查集)
- LA 3027 合作网络 并查集
- 并查集(合作网络,LA 3027)
- LA 3027 Corporative Network 合作网络【并查集+路径压缩】
- 《算法指南-训练指南》第三章-3.5_LA 3644(并查集)
- LA 3027 合作网络
- LA 3207 合作网络 (加权并查集)
- 《算法竞赛-训练指南》第一章-1.13_LA 3635
- LA-3027-Corporative Network-更新深度的并查集
- 《算法竞赛-训练指南》第一章-1.12_LA 3971
- 《算法竞赛-训练指南》第一章-1.26_LA 3882
- Corporative Network(LA 3027,带权并查集母题)
- LA 3027 Corporative Network(并查集,求某个节点到根节点的距离)
- LA3644,LA3027 并查集,LRJ训练指南
- 《算法竞赛-训练指南》第二章-2.4-LA 3516
- 《算法竞赛-训练指南》第二章-2.28_LA 3485(simpson)
- UVA - 1329 Corporative Network 合作网络(并查集)
- 《算法竞赛-训练指南》第一章-1.16_LA 3177
- 《算法竞赛-训练指南》第一章-1.23_LA 3695
- 带权并查集 La 3027