poj 1962 Corporative Network 并查集,很容易超时,大家要注意合并
这道题应该算是并查集的小变形 ,我做完之后,一直tle,这下个我正纠结了,看一下别人的代码,发现合并很重要,节省很多时间,不用每次都回溯追了老远,譬如a[1]=3,a[3]=2直接变成a[1]=2这样成了很多时间 ,给自己的代码小改一下,A了
#include<iostream>
using namespace std;
int a[20005];
int w[20005];
int cou;
int ask(int x)
{
if(a[x]!=x)
{
ask(a[x]);//用于回溯到顶点!!!!由顶点向回加,因为最后w[x]记录答案
w[x]+=w[a[x]];//将路径值加一起
a[x]=ask(a[x]); //很主要,将路径合并,譬如a[1]=3,a[3]=2直接变成a[1]=2这样成了很多时间
}
return a[x];
}
int main()
{
int cases,n;
cin>>cases;
int temp;
char m;
int x,y;
while(cases--)
{
for(int i=0;i<20005;i++)
{
a[i]=i;
w[i]=0;
}
cou=0;
cin>>temp;
while(cin>>m,m!='O')
{
if(m=='E')
{
cin>>x;
ask(x);
cout<<w[x]<<endl;
}
if(m=='I')
{
cin>>x>>y;
a[x]=y;
w[x]=abs(x-y)%1000;//初始化
}
}
}
return 0;
}
poj 1962 Corporative Network 并查集,很容易超时,大家要注意合并相关推荐
- UVA 1329 Corporative Network(并查集:路径压缩)
UVA 1329 Corporative Network(并查集:路径压缩) 2014年03月09日 00:19:33 阅读数:914 UVA 1329 Corporative Network(并查集 ...
- POJ 2236 Wireless Network 并查集
Wireless Network 并查集 Crawling in process... Crawling failed Time Limit:10000MS Memory Limit:6553 ...
- POJ 2236 - Wireless Network ( 并查集 )
题意 一个计算机网络里的计算机都坏了, 现在有两种操作, "O p"代表修复了p机器, "S p q"代表检查 p, q 两台机器是否连接( 直线距离<= ...
- CF-1023F.Mobile Phone Network(并查集缩点)
CF-1023F.Mobile Phone Network(并查集缩点) 题目链接 题意 你手里有K条边还没有分配权值,已经存在M条边带权值,如何给你手中的边分配权值,使得K条边都在最后的最小生成树中 ...
- POJ 1182 食物链,并查集的拓展
http://poj.org/problem?id=1182 /******************************************************** 此道题目 前天看的时候 ...
- Find them, Catch them POJ - 1703(种类并查集)
题意: 在这个城市里有两个黑帮团伙,现在给出N个人,问任意两个人他们是否在同一个团伙 1.输入D x y代表x于y不在一个团伙里 2.输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙 ...
- POJ 1417 True Liars 并查集+背包
题目链接:http://poj.org/problem?id=1417 解题思路:比较容易想到的是并查集,然后把第三组数据测试一下之后发现这并不是简单的并查集,而是需要合并之后然后判断的.并且鉴于题目 ...
- poj 1456 Supermarket 贪心+并查集(个人感觉有点难判断出来
poj 1456 这第一眼还觉得只要贪心就可以了,但是emmm看了大佬的题解居然真的要用到并查集= = 大佬清晰的思路 大佬舒服的代码 #pragma warning(disable:4996) #i ...
- POJ 1611 The Suspects 并查集
The Suspects Time Limit:1000MS Memory Limit:20000KB 64bit IO Format:%lld & %llu Descript ...
- poj 3723 Conscription (并查集)
1 首先我们应该区分开男孩和女孩,只要将男孩的编号加上女孩的个数n,这样就可以做到男孩和女孩的编号是不同的. 2 题目中说了如果两个人有关系,并且其中一个人已经被选了那么选择另外一个人的时候只要100 ...
最新文章
- SQL2000 N' '的意思
- 从零开始入门 K8s | 可观测性:你的应用健康吗?
- leetcode357. 计算各个位数不同的数字个数(回溯)
- 2021辽宁大洼高中高考成绩查询,2021大洼高中最后一跑——励志高考,逆袭人生...
- 黑盒测试和白盒测试_黑盒测试综合策略
- android卡机字符串,Android调用replace方法正则表达式卡死
- Maven基础篇之Maven实战入门-最新IDEA版maven
- OpenContrail 体系架构文档
- learning的反义词英文_英语反义词大全.
- 树莓派安装opencv3.4.3时缺少boostdesc等文件及一些常见的报错
- 软件保护技术 - 基础
- SCARA——OpenGL入门学习五六(三维变换、动画)
- android放微信短视频文件,参考微信实现的短视频录像
- 「大数据的关键思考系列」15:阿里巴巴的大数据实践(1)
- “外卖”----隐形非物质文化遗产
- 简易三国杀:儿童识字卡牌
- 计算机的硬盘 u盘启动,【电脑bios设置硬盘启动】电脑bios设置光驱启动_电脑bios设置u盘启动...
- 对 GoPro 应用程序摄像机连接的故障诊断
- 干货 | 心理学人电脑选购指南来了!
- Scrum 项目投资分析 - 如何计算投资回收期