/*
有N个企业,每个企业想要实现通信,要用线路来连接,线路的长度为abs(a-b)%1000;
如果企业a 链接到了企业b 那么b就是the center of the serving!
然后有两种操作:
E a : 输出企业a到serving center 的线路的距离
I a, b 将企业a连接到企业 b,那么b就成为了serving center(之前连接a的企业,他们的serving center也变成了b) 思路:并查集! (压缩路径时回溯求解) !
*/
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#define M 20005
using namespace std;
int n;
int f[M];
int ans[M];//节点 i到 serving center的距离! int getFather(int x){
if(x==f[x]) return x;
int ff=getFather(f[x]);
ans[x]+=ans[f[x]];//节点x到serving center 的距离要加上其父节点到serving center的距离!
return f[x]=ff;
} void Union(int a, int b){
if(a==b) return;
f[a]=b;
ans[a]=abs(a-b) % ;
} int main(){
int t;
char ch[];
cin>>t;
while(t--){
cin>>n;
int a, b;
memset(ans, , sizeof(ans));
for(int i=; i<=n; ++i)
f[i]=i;
while(cin>>ch && ch[]!='O'){
if(ch[]=='E'){
cin>>a;
getFather(a);
cout<<ans[a]<<endl;
}
else{
cin>>a>>b;
Union(a, b);
}
}
}
return ;
}

hdu1962Corporative Network带权回路的更多相关文章

  1. UVALive 3027 Corporative Network 带权并查集

                         Corporative Network A very big corporation is developing its corporative networ ...

  2. POJ1962Corporative Network[带权并查集]

    Corporative Network Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 3945   Accepted: 14 ...

  3. UVA 3027 Corporative Network 带权并查集、

    题意:一个企业要去收购一些公司把,使的每个企业之间互联,刚开始每个公司互相独立 给出n个公司,两种操作 E I:询问I到I它连接点最后一个公司的距离 I I J:将I公司指向J公司,也就是J公司是I公 ...

  4. POJ1962:Corporative Network【带权并查集】

    <题目链接> 题目大意: n个节点,若干次询问,I x y表示从x连一条边到y,权值为|x-y|%1000:E x表示询问x到x所指向的终点的距离.   解题分析: 与普通的带权并查集类似 ...

  5. 【poj 1962】Corporative Network(图论--带权并查集 模版题)

    P.S.我不想看英文原题的,但是看网上题解的题意看得我 炒鸡辛苦&一脸懵 +_+,打这模版题的代码也纠结至极了......不得已只能自己翻译了QwQ . 题意:有一个公司有N个企业,分成几个网 ...

  6. 无向带权图的最小生成树算法——Prim及Kruskal算法思路

    边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权. 最小生成树(MST):权值最小的生成树. 生成树和最小生成树的应用:要连通n个城市需要n-1条边线路.可以 ...

  7. 并查集——poj2236(带权并查集)

    题目:Wireless Network 题意:给定n台已损坏计算机的位置和计算机最远通信距离d,然后分别根据命令执行以下两种操作: "O p" (1 <= p <= N ...

  8. 带权并查集:HDU3172-Virtual Friends

    Virtual Friends Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  9. HDU_3172_带权并查集

    Virtual Friends Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

随机推荐

  1. 声笔码7.00版现已进入Beta测试阶段

    声笔码7.00版现已进入Beta测试阶段,有兴趣的朋友可以试试,欢迎多提宝贵意见. 由于论坛附件限制了1M的大小所以无法上传,需要的朋友可加入声笔系列码群(QQ群号:445906697),到共享文件夹 ...

  2. project.VERSION_NAME定义

    android { compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION) buildToolsVersion pr ...

  3. K最短路 A*算法

    POJ2449 Remmarguts' Date #include <iostream> #include <algorithm> #include <queue> ...

  4. pthread——pthread_cleanup

    Pthread_cleanup用于注册线程清理函数,注册的清理函数将在线程被取消或者主动调用pthread_exit时被调用:     一个简单的示例: #include <pthread.h& ...

  5. the diff typeof and instanceof

    instanceof和typeof都能用来判断一个变量是否为空或是什么类型的变量. typeof用以获取一个变量的类型,typeof一般只能返回如下几个结果:number,boolean,string ...

  6. 字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略

    因为手头需要使用一个第三方类库,网络上又找不到它的可用的版本,于是只好自己动手.这个类库使用了Dotfuscator 加密,用.NET Reflector加载程序集, 看到的字符串是乱码,如下面的代码 ...

  7. .NET Core下使用gRpc公开服务(SSL/TLS)

    一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多的教程中基本都是泛泛而谈,难以实际在实际环境中使用,而该篇 ...

  8. 【读书笔记】.Net并行编程(三)---并行集合

    为了让共享的数组,集合能够被多线程更新,我们现在(.net4.0之后)可以使用并发集合来实现这个功能.而System.Collections和System.Collections.Generic命名空 ...

  9. [异常解决] ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7)

    利用周末时间将整个电脑格式化,换成了ubuntu系统- 所谓:扫清屋子再请客! 但是有些软件只在win上有,于是还是考虑装个虚拟机来个——逐步过度策略,一点点地从win上转移到linux上 我的系统是 ...

  10. zend studio 常用快捷键

    zend studio是一款很棒的PHP语言编译器,强大的功能让很多程序员爱不释手,而快捷键更是程序员加快编写代码的利器,那么一起来看看有哪些好用的快捷键吧. 复制当前行:ctrl+alt+↓ 删除当 ...