uva 1329 Corporative Network

简介: 点击打开链接uva 1329 思路: 带权并查集 分析: 1 看懂题目就是切菜了 代码: #include#include#include#includeusing namespace std;const int MAXN...

点击打开链接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;
}



目录
相关文章
|
6月前
POJ—2236 Wireless Network
POJ—2236 Wireless Network
|
6月前
Arctic Network( POJ - 2349)
Arctic Network( POJ - 2349)
UVa140 Bandwidth
UVa140 Bandwidth
32 0
[POJ 1236] Network of Schools | Tarjan缩点
Description A number of schools are connected to a computer network. Agreements have been developed among those schools: each school maintains a list of schools to which it distributes software (the “receiving schools”).
135 0
[POJ 1236] Network of Schools | Tarjan缩点
|
算法 数据建模
【POJ 1236 Network of Schools】强联通分量问题 Tarjan算法,缩点
题目链接:http://poj.org/problem?id=1236 题意:给定一个表示n所学校网络连通关系的有向图。现要通过网络分发软件,规则是:若顶点u,v存在通路,发给u,则v可以通过网络从u接收到。
1181 0
|
Web App开发 算法