日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > (DS 《算法競賽入門經典》)LA 3027 Corporative Network(查詢某一個節點到根節點之間的距離)

(DS 《算法競賽入門經典》)LA 3027 Corporative Network(查詢某一個節點到根節點之間的距離)

來源:程序員人生   發布時間:2015-01-06 08:09:33 閱讀次數:3447次

題目大意:

             查詢某1個節點到根節點之間的距離


解題思路:

            加權并查集問題。之前做的題目是“查看兩個或多個節點是不是在同1個集合下”,現在的題目是“查詢某個節點到

根節點之間的距離”。之前只需要使用到father[x]這個數組,用來表示x的父親節點是誰。現在引入dist[x]數組,用來記錄

x節點到根節點的距離

            1)在并查集中,根節點不懂,其他節點都可以動。



A very big corporation is developing its corporative network. In the beginning each of the N enterprises of the corporation, numerated from 1 to N, organized its own computing and telecommunication center. Soon, for amelioration of the services, the corporation started to collect some enterprises in clusters, each of them served by a single computing and telecommunication center as follow. The corporation chose one of the existing centers I (serving the cluster A) and one of the enterprises J in some cluster B (not necessarily the center) and link them with telecommunication line. The length of the line between the enterprises I and J is |I ? J|(mod 1000). In such a way the two old clusters are joined in a new cluster, served by the center of the old cluster B. Unfortunately after each join the sum of the lengths of the lines linking an enterprise to its serving center could be changed and the end users would like to know what is the new length. Write a program to keep trace of the changes in the organization of the network that is able in each moment to answer the questions of the users.

Input 

Your program has to be ready to solve more than one test case. The first line of the input file will contains only the number T of the test cases. Each test will start with the number N of enterprises (5≤N≤20000). Then some number of lines (no more than 200000) will follow with one of the commands:
E I ? asking the length of the path from the enterprise I to its serving center in the moment;
I I J ? informing that the serving center I is linked to the enterprise J.
The test case finishes with a line containing the word O. The I commands are less than N.

Output 

The output should contain as many lines as the number of E commands in all test cases with a single number each ? the asked sum of length of lines connecting the corresponding enterprise with its serving center.

Sample Input 

1
4
E 3
I 3 1
E 3
I 1 2
E 3
I 2 4
E 3
O

Sample Output 

0
2
3
5

代碼以下:

/* * LA3027.cpp * * Created on: 2015年1月3日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int maxn = 20005; int father[maxn]; int dist[maxn]; int find(int x) { if (x != father[x]) { int fx = find(father[x]); dist[x] += dist[father[x]]; father[x] = fx; } return father[x]; } int main() { int t; scanf("%d", &t); while (t--) { char cmd[9]; int n; scanf("%d", &n); int i; for (i = 1; i <= n; ++i) { father[i] = i; dist[i] = 0; } while (scanf("%s", cmd) == 1, cmd[0] != 'O') { if (cmd[0] == 'I') { int u, v; scanf("%d%d", &u, &v); father[u] = v; dist[u] = abs(u - v) % 1000; } else if (cmd[0] == 'E') { int u; scanf("%d", &u); find(u); printf("%d ", dist[u]); } } } return 0; }




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲欧美一区二区三区四区 | 久久久久国 | 精品伊人久久久久7777人 | 亚洲一区二区三区日韩 | 极品视频在线 | 国产一区二区播放 | 国产一二三区在线观看 | 亚洲欧洲成人av每日更新 | 久国产精品韩国三级视频 | 欧美成人精品一区二区三区 | 日韩色综合 | 草碰在线视频 | 欧美片子 | 亚洲色图第一页 | 亚洲成av人片一区二区 | 亚洲不卡一区二区三区 | 久久久久成人精品免费播放动漫 | 91香蕉视频好色先生 | 亚洲第一福利视频 | 亚洲欧洲视频在线 | 国产亚洲精品美女久久久久久久久久 | 曰韩精品| 国产永久免费 | 日韩在线视屏 | 亚洲区一区二区三区 | 日韩av毛片| 国产成人精品一区二区三区在线 | 五月婷婷视频 | 国产精品久久久久久久久久久久 | 日本不卡免费新一二三区 | 99久久久久 | 天堂中文在线最新 | 久久国产精品免费视频 | 一区二区三区中文 | 九九综合 | 日韩精品在线播放 | 日本一区二区三区四区视频 | 久久色av| 国产黄色a级 | xxxx性欧美| 久久久久久网址 |