码迷,mamicode.com
首页 > Web开发 > 详细

Corporative Network(带权并查集)

时间:2014-08-13 22:38:07      阅读:228      评论:0      收藏:0      [点我收藏+]

标签: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

Corporative Network(带权并查集)

标签:blog   io   for   ar   2014   amp   log   file   

原文地址:http://blog.csdn.net/u013076044/article/details/38541315

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!