博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1962-Corporative Network (并查集)
阅读量:7120 次
发布时间:2019-06-28

本文共 1125 字,大约阅读时间需要 3 分钟。

题目有2种操作, 一种是查询,一种是设置。

设置为将u的父亲设置为v,然后他们之间的距离为|u-v|%1000

查询为该点到根点的距离

用并查集做,做的时候注意维护即可,注意取余操作。

代码:

1 #include
2 #include
3 #include
4 using namespace std; 5 const int N = 200010; 6 int d[N],F[N]; 7 int init(int x) 8 { 9 for(int i =0;i<=x;i++)10 {11 F[i] = i;12 d[i]=0;13 }14 }15 int findset(int x)16 {17 if(F[x]!=x)18 {19 int root = findset(F[x]);20 d[x] = d[x]+d[F[x]];21 return F[x] = root;22 }23 else return x;24 }25 int main()26 {27 int T,n;28 char s[10];29 scanf("%d",&T);30 while(T--)31 {32 int n,u,v;33 scanf("%d",&n);34 init(n);35 while(scanf("%s",s) && s[0]!='O')36 {37 if(s[0] == 'E')38 {39 scanf("%d",&u);40 findset(u);41 printf("%d\n",d[u]);42 }43 else44 {45 scanf("%d%d",&u,&v);46 F[u] = v;47 d[u] = abs(u-v)%1000;48 }49 }50 }51 return 0;52 }

 

转载地址:http://arnel.baihongyu.com/

你可能感兴趣的文章
几个常用的ps命令
查看>>
java如何获取本机IP
查看>>
gradle入门(1-7)eclipse和gradle集成插件的安装和使用
查看>>
uva 1378 - A Funny Stone Game sg博弈
查看>>
F#试用感受
查看>>
JavaScript继承详解(三)
查看>>
Java/JSP中使用JDBC连接SQL Server 2000/2005
查看>>
SSH框架+mysql+tomcat 服务器 中文乱码解决方案
查看>>
C++ 沉思录——Chap4:设计类的核查表
查看>>
Oracle笔记(一) Oracle简介及安装
查看>>
RabbitMQ 2.8.7 发布,AMQP 消息队列
查看>>
mysql 表操作
查看>>
Oracle2
查看>>
hadoop源码svn下载地址
查看>>
UDP 通信
查看>>
MyBatis insert操作插入,返回主键from官方
查看>>
XML约束——Schema约束
查看>>
NuGet的安装;
查看>>
[LeetCode] Search for a Range
查看>>
ubuntu workbench
查看>>