C - Corporative Network UVA - 1329 (并查集)
2017-08-18 14:47
323 查看
题目链接:点击打开链接
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iomanip>
using namespace std;
int n;
int a[100000+100];
int b[100000+100];
int init()
{
for(int i=0;i<=n;i++) a[i]=i;
}
int fid(int x)
{
int num=0;
while(x!=a[x]){
num+=abs(x-a[x])%1000;
x=a[x];
}
return num;
}
int Un(int x,int y)
{
a[x]=y;
}
int main()
{
int T; cin>>T;
4000
f485
while(T--){
cin>>n;
init();
while(1){
char c; cin>>c;
if(c=='O') break;
else if(c=='E'){
int m; cin>>m;
cout<<fid(m)<<endl;
}
else if(c=='I'){
int x,y;
cin>>x>>y;
Un(x,y);
}
}
}
return 0;
}
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iomanip>
using namespace std;
int n;
int a[100000+100];
int b[100000+100];
int init()
{
for(int i=0;i<=n;i++) a[i]=i;
}
int fid(int x)
{
int num=0;
while(x!=a[x]){
num+=abs(x-a[x])%1000;
x=a[x];
}
return num;
}
int Un(int x,int y)
{
a[x]=y;
}
int main()
{
int T; cin>>T;
4000
f485
while(T--){
cin>>n;
init();
while(1){
char c; cin>>c;
if(c=='O') break;
else if(c=='E'){
int m; cin>>m;
cout<<fid(m)<<endl;
}
else if(c=='I'){
int x,y;
cin>>x>>y;
Un(x,y);
}
}
}
return 0;
}
相关文章推荐
- C - Corporative Network UVA - 1329 -加权并查集
- Corporative Network UVA - 1329(并查集的修改与查询)
- Corporative Network UVA - 1329 加权并查集
- Corporative Network UVA - 1329 加权并查集(压缩路径优化)
- UVALive 3027---Corporative Network+并查集的应用
- UVA 1329 - Corporative Network
- UVA 1329 Corporative Network
- Corporative Network UVA - 1329
- Corporative Network UVALive - 3027 并查集
- Corporative Network +uvalive+并查集
- UVA 1329 Corporative Network(并查集)
- UVA 1329 Corporative Network(并查集:路径压缩)
- Corporative Network UVA - 1329 加权并查集
- 并查集uva1329(LA3027)
- UVA 1329 - Corporative Network(带权并查集)
- UVa 1329 Corporative Network(并查集)
- uva 1329 - Corporative Network(数据结构:并查集)
- UVA 1329 Corporative Network【并查集】
- LA 3027 Corporative Network / 并查集
- 并查集 Corporative Network POJ 1962