UVA 1329 Corporative Network【并查集】
2017-06-22 19:18
225 查看
题目链接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4075
题意:
有n个结点,開始都是单独的结点,如今有I操作和E操作,I u v表示吧u的父亲结点设为,距离为|u - v| % 1000,E操作询问u到根的距离
代码:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4075
题意:
有n个结点,開始都是单独的结点,如今有I操作和E操作,I u v表示吧u的父亲结点设为,距离为|u - v| % 1000,E操作询问u到根的距离
代码:
#include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> #include <queue> #include <stack> #include <map> using namespace std; int fa[1000010]; int d[1000010]; int fd(int x) { if (fa[x] != -1) { int rot = fd(fa[x]); d[x] += d[fa[x]]; return fa[x] = fd(fa[x]); } else return x; } int main() { int a, b; int t, n; scanf("%d",&t); char cmd[10]; while (t--) { memset(fa, -1, sizeof(fa)); memset(d,0,sizeof(d)); scanf("%d", &n); while (scanf("%s", cmd) && cmd[0] != 'O') { if (cmd[0] == 'E') { scanf("%d", &a); fd(a); printf("%d\n", d[a]); } else { scanf("%d%d", &a, &b); fa[a] = b; d[a] = abs(a - b) % 1000; } } } return 0; }
相关文章推荐
- UVA 1329 Corporative Network(并查集:路径压缩)
- LA3027:Corporative Network(并查集) uva 1329
- UVa:1329 Corporative Network(带权并查集)
- 并查集uva1329(LA3027)
- UVA - 1329 Corporative Network 合作网络(并查集)
- UVA 1329 Corporative Network(并查集)
- UVA 1329 Corporative Network【并查集】
- C - Corporative Network UVA - 1329 (并查集)
- Corporative Network UVA - 1329(并查集的修改与查询)
- C - Corporative Network UVA - 1329 -加权并查集
- uva 1329 - Corporative Network(加权并查集)
- UVa 1329 Corporative Network(并查集)
- Corporative Network UVA - 1329 加权并查集
- Corporative Network UVA - 1329 加权并查集
- uva1329 Corporative Network(并查集:路径压缩)
- UVA-1329 - Corporative Network(并查集)
- uva 1329 - Corporative Network(数据结构:并查集)
- Corporative Network UVA - 1329 加权并查集(压缩路径优化)
- UVa 1329 Corporative Network (加权并查集)
- UVA 1329 - Corporative Network(带权并查集)