LA 3027 合作网络
2024-10-20 03:56:28
https://vjudge.net/problem/UVALive-3027
题意:
有n个结点,初始时每个结点的父节点都不存在。你的任务是执行一次I操作和E操作,格式如下:
I u v:把结点u的父节点设为v,距离为|u-v|除以1000的余数。输入保证执行指令前u没有父节点。
E u:询问u到根结点的距离。
思路:
主要思想是并查集,记录一下每个结点到根结点的距离即可。
#include<iostream>
#include<cstring>
using namespace std; const int maxn = + ; int p[maxn], d[maxn];
int n;
char c; int find(int x)
{
if (p[x] != x)
return d[x] + find(p[x]);
else
return d[x];
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
int T;
scanf("%d", &T);
while (T--)
{
memset(d, , sizeof(d));
scanf("%d", &n);
for (int i = ; i <= n; i++)
p[i] = i;
int u, v;
while (scanf("%c",&c) && c != 'O')
{
if (c == 'E')
{
scanf("%d", &u);
int sum=find(u);
cout << sum << endl;
}
else if (c == 'I')
{
scanf("%d%d", &u, &v);
p[u] = v;
d[u] = abs(v - u) % ;
}
}
}
}
最新文章
- DATE 日期格式
- 我的ORM之五-- 事务
- HDU5792 World is Exploding(树状数组)
- 能套用的tab栏切换
- 配置NAT回流导致外网解析到了内网IP
- Fresco 使用笔记(一):加载gif图片并播放
- 5月4日课堂内容:for循环的穷举、迭代
- Android App集成支付宝
- 转载sql server 关于 default value的一些使用总结
- windows平台下载android源代码
- 免费的Lucene 原理与代码分析完整版下载
- 记一个http-proxy-middleware 代理访问nginx映射的接口不通过的问题(connection close)
- c# 简单实现 插件模型 反射方式
- P1282 多米诺骨牌 (背包变形问题)
- PL/SQL学习笔记之包
- css3的calc()
- 核心一:IoC
- 友盟推送SDK集成测试、常见问题以及注意事项总结
- hacknet
- L3-014 周游世界 (30 分)