UVA 1329 Corporative Network【并查集】
2015-08-17 20:20
281 查看
题目链接:
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到根的距离
代码:
[code]#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; }
相关文章推荐
- 最小二乘法
- 由浅入深探究 MySQL索引结构原理、性能分析与优化
- WAMP配置Rewrite重写规则
- LA 6834 Shopping
- HashMap和HashSet的区别
- 继承映射关系 joinedsubclass的查询
- xilinx的offset 时序约束
- Quick Reference: git 的.gitignore文件
- android ListView之——SimpleAdapter使用
- 杭电1869六度分离
- 全国首部arcgis for javascript 二次开发视频教程
- 【线段树】 HDOJ 5381 The sum of gcd
- 2014Esri国际用户大会ArcGIS Online
- underscore utility
- MFC把秒数转换成时期时间
- bzoj1045【haoi2008】糖果传递
- ubuntu无法访问win7磁盘
- jquery事件
- 详解shared_ptr
- 手动解析CrashLog之——原理篇