合作网络(Corporative Network )并查集+路径压缩
2024-09-03 03:45:24
#include <iostream>
#include <algorithm>
#include <string>
using namespace std; const int maxn = + ;
int fa[maxn];
int d[maxn]; int Find(int x){
if (fa[x] != x){
int root = Find(fa[x]);
d[x] += d[fa[x]]; //路径压缩维护d[i]
return fa[x] = root;
}
else
return x;
} int main(){
/*
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
*/
int t;
cin >> t;
while (t--){
int n;
cin >> n; //init
for (int i = ; i <= n; i++){
fa[i] = i;
d[i] = ;
} string s;
while (cin >> s){
if (s[] == 'O')
break;
if (s[] == 'I'){
int a, b;
cin >> a >> b;
fa[a] = b;
d[a] = abs(a - b) % ;
}
else{
int c;
cin >> c;
Find(c);
cout << d[c] << endl;
}
}
}
/*
fclose(stdin);
fclose(stdout);
*/
return ;
}
最新文章
- Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析
- 因开启SELinux导致httpd报403
- java读取各类型的文件
- Spring 静态资源配置
- 51nod1239 欧拉函数之和
- dom 优酷得弹出
- C++中的INL
- UFLDL实验报告3:Self-taught
- js判断是否微信浏览器打开
- HADOOP都升级到2.5啦~~~
- Javascript刷新页面的几种方法:
- hdu 1298 T9(特里+DFS)
- python 九九乘法表!小练习
- java学习笔记----运算符
- GET和POST传送数据的限制
- Chrome插件:弹出桌面通知
- Python itertools模块详解
- js 创建对象的几种方法
- Numpy:ndarray数据类型和运算
- BZOJ1941:[SDOI2010]Hide and Seek(K-D Tree)