《大白书》192页 uva 1329 合作网络
2016-07-13 11:09
246 查看
【问题描述】
有n个结点(编号为1..n),初始时每个结点的父亲都不存在。你的任务是执行一次I操作和E操作,格式如下:
I u v:把节点u的父亲点设置为v,距离为|u-v|除以1000的余数。输入保证执行指令前u没有父亲节点。
E u:询问u 到根接点的距离(输出距离 mod 1000的结果)。
【输入格式】
输入第一行为测试数据组数T。每组数据第一行为n(5<=n<=20 000)。接下来有不超过20000行,每一行一条指令,以”O”结尾。I指令的个数不小于n。
【输出格式】
对于每条E指令,输出查询结果(输出距离 mod 1000的结果)。
【输入样例】
1
4
E 3
I 3 1
E 3
I 1 2
E 3
I 2 4
E 3
O
【输出样例】
0
2
3
5
【数据范围】
5≤n≤20000
【来源】
《大白书》192页 uva 1329
就是简单的并查集。自己看代码能懂的。
有n个结点(编号为1..n),初始时每个结点的父亲都不存在。你的任务是执行一次I操作和E操作,格式如下:
I u v:把节点u的父亲点设置为v,距离为|u-v|除以1000的余数。输入保证执行指令前u没有父亲节点。
E u:询问u 到根接点的距离(输出距离 mod 1000的结果)。
【输入格式】
输入第一行为测试数据组数T。每组数据第一行为n(5<=n<=20 000)。接下来有不超过20000行,每一行一条指令,以”O”结尾。I指令的个数不小于n。
【输出格式】
对于每条E指令,输出查询结果(输出距离 mod 1000的结果)。
【输入样例】
1
4
E 3
I 3 1
E 3
I 1 2
E 3
I 2 4
E 3
O
【输出样例】
0
2
3
5
【数据范围】
5≤n≤20000
【来源】
《大白书》192页 uva 1329
就是简单的并查集。自己看代码能懂的。
#include<iostream> #include<cstdio> #include<cstdlib> #include<vector> #include<algorithm> #include<cstring> using namespace std; const int maxn=20005; int n,q,fa[maxn],d[maxn]; void in() { for(int i=0;i<=n;i++) fa[i]=i; memset(d,0,sizeof(d)); } int find(int x) { if(fa[x]==x) return x; int t=find(fa[x]); d[x]=(d[x]+d[fa[x]])%1000; fa[x]=t; return t; } void work(int x,int y) { fa[x]=y; d[x]=(abs(x-y))%1000; } int main() { //freopen("in.txt","r",stdin); int T; scanf("%d",&T); for(int i=1;i<=T;i++) { scanf("%d",&n); in(); char c[5]; scanf("%s",c); while(1) { if(c[0]=='I') { int x,y; scanf("%d%d",&x,&y); work(x,y); } if(c[0]=='E') { int x; scanf("%d",&x); int ans=find(x); printf("%d\n",d[x]); } if(c[0]=='O') break; scanf("%s",c); } } return 0; }
相关文章推荐
- Android第三方HTTP网络支持包OkHttp的基础使用教程
- The absolute uri: http://java.sun.com/jsp/jstl/fmt cannot be resolved in either web.xml or the jar
- eclipse提示Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/functions"
- Tomcat 支持https请求的设置
- window下单机最大tcp连接数
- Android App开发中HTTP扩展包OkHttp的入门使用指南
- spark streaming 读取网络数据
- caffe学习系列:绘制网络模型
- Android中使用OkHttp包处理HTTP的get和post请求的方法
- 必须掌握的八个DOS网络命令
- HttpClent请求
- HTTP协议在前端开发中的应用
- 谈谈网络请求
- 网络知识
- One Step By One Step 解析OkHttp3 - Dispatcher (一)
- okhttp,retrofit,android-async-http,volley应该选择哪一个?
- HttpClient使用详解
- 网络对接知识补充(客户端.:android,java 服务端:.net)
- Retrofit网络框架搭建
- java网络socket编程(一)之基础简介