标签:blog io for ar 2014 amp log file
这个题的题意是 当输入‘E‘是查找操作,查找从后面这个数到他的父亲这边的值,‘I’代表把后面的数作为前面数的父亲
然后他们两个的差值代表这两个边的权值
水水的题
#include <stdio.h>
#include <string.h>
int par[20005];
int rank1[20005];
int abs(int hh)
{
return (hh>0)?hh:-hh;
}
void init()
{
for(int i=0;i<20005;i++)
{
par[i]=i;
rank1[i]=0;
}
}
int findset(int x)
{
int root;
if(x!=par[x])
{
root=findset(par[x]);
rank1[x]+=rank1[par[x]];
par[x]=root;
}
return par[x];
}
int main()
{
int T;
int k;
int a,u,v;
char s[10];
while(scanf("%d",&T)==1)
{
while(T--)
{
scanf("%d",&k);
init();
while(scanf("%s",s)!=EOF)
{
if(s[0]=='O')
break;
if(s[0]=='E')
{
scanf("%d",&a);
findset(a);
printf("%d\n",rank1[a]);
}
else
{
scanf("%d%d",&u,&v);
par[u]=v;
rank1[u]=abs(u-v)%1000;
//printf("%d %d\n",u,rank1[u]);
}
// printf("%d %d %d %d\n",rank1[1],rank1[2],rank1[3],rank1[4]);
}
}
}
}Corporative Network(带权并查集),布布扣,bubuko.com
标签:blog io for ar 2014 amp log file
原文地址:http://blog.csdn.net/u013076044/article/details/38541315