【例题】【并查集(带权)&题干有诈】NKOJ 3764 树上间距
2016-09-17 15:43
260 查看
NKOJ 3764 树上间距
时间限制 : - MS 空间限制 : 65536 KB
评测说明 : 时限1000ms
问题描述
有n个节点,初始时每个节点的父亲节点都不存在。你的任务是执行下列两种操作:
1 x y 把节点x的父亲设为y,距离为|x-y| mod 1000 输入保证执行指令前x没有父亲节点
2 x 询问x到它所在这棵树的根节点的距离
输入输入
第一行,两个整数n(5<=n<=50000)
接下来若干行(行数<=100000),每行代表一个操作
输出格式
对于每个2号操作,输出一行,表示计算结果
样例输入
4
2 3
1 3 1
2 3
1 1 2
2 3
1 2 4
2 3
样例输出
0
2
3
5
来源 改编自la3027
思路:
使用并查集存储点的父子关系,一个集合中元素的dis值表示该点到根的距离。
当查询x所在集合根节点时,更新dis[x]。
(有诈:)注意权值只有第一次添加时mod1000,更新时不mod
时间限制 : - MS 空间限制 : 65536 KB
评测说明 : 时限1000ms
问题描述
有n个节点,初始时每个节点的父亲节点都不存在。你的任务是执行下列两种操作:
1 x y 把节点x的父亲设为y,距离为|x-y| mod 1000 输入保证执行指令前x没有父亲节点
2 x 询问x到它所在这棵树的根节点的距离
输入输入
第一行,两个整数n(5<=n<=50000)
接下来若干行(行数<=100000),每行代表一个操作
输出格式
对于每个2号操作,输出一行,表示计算结果
样例输入
4
2 3
1 3 1
2 3
1 1 2
2 3
1 2 4
2 3
样例输出
0
2
3
5
来源 改编自la3027
思路:
使用并查集存储点的父子关系,一个集合中元素的dis值表示该点到根的距离。
当查询x所在集合根节点时,更新dis[x]。
(有诈:)注意权值只有第一次添加时mod1000,更新时不mod
#include<cstdio> #include<iostream> #include<cmath> #include<cstdlib> using namespace std; const int need=50004; int be[need],dis[need]; int d; int getbe(int x) { if(x==be[x]) return x; else { int root=getbe(be[x]); dis[x]+=dis[be[x]]; return be[x]=root; } } int main() { //freopen("a.txt","r",stdin); int n; scanf("%d",&n); for(int i=1;i<=n;i++) be[i]=i; int k,a,b; while(scanf("%d",&k)!=EOF) { if(k==1) { scanf("%d%d",&a,&b); be[a]=b; dis[a]=abs(a-b)%1000; } else if(k==2) { scanf("%d",&a); getbe(a);//注意要使用dis时,先更新根节点 printf("%d\n",dis[a]); } } }
相关文章推荐
- 并查集(模板&典型例题整理)
- 关于&和&&的一道容易出错的小例题
- 这种题目怎么做 为什么 谢谢 给个例题 "正方形的周长C与它的边长"中的2个变量是否成正比例
- BZOJ3674: 可持久化并查集加强版&&BZOJ3673: 可持久化并查集 by zky
- hdoj2120 Ice_cream's world I【并查集】
- 【HDU】4514 - 湫湫系列故事——设计风景线(树的直径 & 并查集 & dfs)
- 【例题】【并查集】NKOJ2107 可爱的猴子
- 并查集 按秩合并&路径压缩
- 例题9-10 UVa1626&&POJ1141 Brackets Sequence(DP)
- [POJ 2492] A Bug's Life [扩展并查集]
- Autolayout -- 视图等宽 && 间距等宽
- 【BZOJ】【3673】可持久化并查集 & 【3674】可持久化并查集加强版
- 【带偏移量的并查集】:poj2492,A Bug's Life
- POJ2492A Bug's Life【并查集+根节点偏移】
- BZOJ 3211&3038 并查集+树状数组 解题报告
- &lt;div&gt;.&lt;li&gt;上面有好空白大/间距.&lt;/li&gt;.&lt;/div&gt;
- POJ 2492 || HDU 1829:A Bug's Life(并查集)
- 指南 第三章 例题6 UVALive 3027 Corporative Network(并查集的应用)
- BZOJ4537 [Hnoi2016]最小公倍数 (可撤销&&可持久化并查集学习笔记)
- hdu1 bade 272&&1325--并查集判环及森林问题