回 帖 发 新 帖 刷新版面

主题:求教啊

工作隊伍 - team 題型 程式編寫 
任務名稱 team 

某公司將它的員工分為兩類,一類稱為主管,另一類稱為職工。所有主管都有一名或以上的手下,這些手下可以是主管或是職工。而職工則沒有任何手下。我們定義一個主管的團隊人數為這個主管及其所有手下及手下的手下(如些類推)的總人數。而對於沒有手下的職工而言,其團隊人數為 1。由於工作,這些職工及主管均需要經常重新調配。而調配的方式是將員工 X 調至員工 Y 的手下,而若 X 是一名主管的話,他的整個團隊亦跟隨他調配到新職位。這一來主管 Y 的團隊總人數就為 Y 原來的團隊人數加上 X 的團隊人數。

所有員人最初均為職工,其後通過調配,不同的團隊才漸漸形成。

為管理需要,該公司的管理層經常需要知道在某一時刻某個主管的團隊人數。而該公司目前最希望可以有一個程式幫助他們掌握員人調配的情況,及隨時查詢某個主管(或職工)他的團隊目前的總人數。請你為該公司編寫這個程式。

輸入
輸入資料的第一行有三個正整數 N Q 及 T。其中 N 為員工的總數目,Q 為查詢的總次數,而 T 則為調配的總次數。其中 10 ≤ N ≤ 1,000, 而 1 ≤ Q ≤ 50,000 及 1 ≤ T ≤ 300,000。

隨後有 Q+T 行的資料,每行均為以下的其中一種:

調配資料:這行上有一個英文字符‘T’及兩個整數 X 及 Y,它代表著將員工 X (及其團隊)調配至 Y 手下。 
查詢資料:這行上有一個英文字符‘Q’及一個整數 E, 它代表我們希望查詢目前員工 E 的團隊人數。 
以上兩類資料將會不規則地出現在輸入資料中,但調配資料的總數將會為 T 而查詢資料的總數將會為 Q,而且最後一行必會為查詢資料。每個員工則由一個由 1 至 N 的整數編號代表之。

輸出
輸出資料的第一行為一正整數 Q, 這個數是直接由輸入資料中取得。隨後應有 Q 行,每行均有一個正整數。這些整數順次回應每個輸入查詢的結果(即相應被查詢的員人的團隊人數)。

由於所有員工開始時是假設為職工,因此若查詢一位未曾有任何調配活動的員工時,他的團隊人數應為 1。

輸入、輸出例子
輸入樣例 輸出樣例 
10 4 5
T 3 4
T 1 5
T 5 6
T 2 5
Q 5
Q 6
T 2 7
Q 5
Q 8
 4
3
4
2
1
 
求答案

回复列表 (共2个回复)

沙发

這題目,我做了一星期了,還是解不出來,沒做過類似的題目,現在來看看那位高手會做出來

板凳

這論壇有人的嗎

我来回复

您尚未登录,请登录后再回复。点此登录或注册