uva 1329 Corporative Network

点击打开链接uva 1329

思路: 带权并查集
分析:
1 看懂题目就是切菜了

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int MAXN = 20010;

int n;
int father[MAXN];
int rank[MAXN];

void init(){
    memset(rank , 0 , sizeof(rank));
    for(int i = 1 ; i < MAXN ; i++)
        father[i] = i;
}

int find(int x){
    if(father[x] == x)
        return x;
    int tmp = father[x];
    father[x] = find(father[x]);
    rank[x] += rank[tmp];
    return father[x];
}

int main(){
    int Case;
    char c;
    int x , y;
    scanf("%d" , &Case);
    while(Case--){
         init();
         scanf("%d%*c" , &n);
         while(scanf("%c" , &c) && c != 'O'){
              if(c == 'E'){
                  scanf("%d%*c" , &x);
                  int tmp = find(x);
                  printf("%d\n" , rank[x]);
              }
              else{
                  scanf("%d%d%*c" , &x , &y);
                  int fx = find(x);
                  int fy = find(y);
                  if(fx != fy){
                     father[fx] = fy;
                     rank[fx] = abs(x-y)%1000+rank[y]-rank[x];
                  }
              }
         }
    }
    return 0;
}
时间: 2024-09-10 23:09:30

uva 1329 Corporative Network的相关文章

poj 2349 uva 10369 - Arctic Network

点击打开链接uva 10369 1题目意思: 某地有s颗卫星,有p个站点,s<p.现在两个站点之间可以靠卫星和无线电相连,如果是依靠卫星相连的 .那么两个站点的距离可以无限大.如果是依靠无线电先相连的那么两个站点的距离D越大那么费用越高.题目要求在利用完s个卫星后,剩下的利用无线电相连的时候求出最小的D值 2思路:最小生成树+第k大的边 3分析:            1利用Prime算法,把最小生成数的边存储在ans数组里面,最后对ans按照从大到小排序,最后的ans就是ans[n-1].  

并查集专题【完结】

个人整理 并查集 [poj] 第一题 poj 1182 食物链 点击打开链接poj 1182 思路: 带权并查集 分析: 1 典型的带权并查集的题目 2 如果x和y是同类的关系认为是0,如果是x吃y那么关系认为是1,那么x和y的关系为2就说明y吃x 3 那么如果x和y同类则rank[x] == rank[y] , 如果x吃y那么rank[x] == (rank[y]+1)%3 , 注意mod3的使用 点击查看代码 第二题 poj 1308 Is It A Tree? 点击打开链接 poj 130

最小生成树【完结】

第一题 hdu 1232 畅通工程 点击打开hdu 1232 思路:模板题 点击查看代码 第二题 hdu 1233 还是畅通工程 点击打开hdu 1233 思路:模板题 点击查看代码 第三题 uva 10034 Freckles 点击打开uva 10034 思路:模板题 点击查看代码 第四题 uva 10397 Connect the Campus 点击打开uva 10397 思路:模板题 点击查看代码 第五题 uva 10369 Arctic Network 点击打开uva 10369 思路:

UVa 10369:Arctic Network(求最小生成树的第k小边)

链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1310 题目: Problem C: Arctic Network The Department of National Defence (DND) wishes to connect several northern outposts by a wir

UVa 1267 Network:DFS&amp;amp;贪心

1267 - Network Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=456&page=show_problem&problem=3708 Consider a tree network with n nodes where the internal nodes correspond to servers a

uva 1267 Network

点击打开链接uva 1267 思路:先把无根树转化为有根树然后找深度最大的点进行dfs 分析: 1 首先我们应该先把这个无根树转化为有根树,然后我们就可以知道每一个叶子节点相对与根节点的距离 2 接下来我们考虑一下深度最大的节点,假设当前的节点u是深度最大的节点,那么我们可以知道u的k级祖先(父亲是1级,父亲的父亲是2级)处放置服务器肯定比1-k-1任何的一级都优. 3 那么我们每放一个服务器进行一次的dfs,把那些和当前服务器距离小于等于k的节点全部覆盖.注意本题只需要覆盖叶子,而不需要覆盖中

poj 3164 Command Network:最小树形图模板题

链接: http://poj.org/problem?id=3164 题目: Command Network Time Limit: 1000MS     Memory Limit: 131072K Total Submissions: 8922     Accepted: 2609 Description After a long lasting war on words, a war on arms finally breaks out between littleken's and Knu

UVa 10397:Connect the Campus (最小生成树)

链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1338 题目: Problem E Connect the Campus Input: standard input Output: standard output Time Limit: 2 seconds Many new buildings are

UVa 10986:Sending email (Dijkstra优化, SPFA)

链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1927 题目: Problem E Sending email Time Limit: 3 seconds "A new internet watchdog is creating a stir in Springfield. Mr. X, i