TopCoder

腦子裝咖哩
想像不出自己 AC 的題目是實作不出來的!雖然想像得出來也不一定可以就是了

User's AC Ratio

95.0% (133/140)

Submission's AC Ratio

36.3% (293/807)

Tags

Description

演化論是近代生物學中一個重要的學說,用來解釋生物在各世代之間存在差異的現象。透過各種演化證據,生物學家們能夠推斷兩物種間的親緣關係,並基於此資訊建立一個樹狀結構,來展現一個可能的演化過程。

小美在生物課聽到老師介紹演化樹時,覺得非常有趣,回家後立刻上網查了一些演化樹的例子(如下示意圖)。

小美看著查到的資料,突發奇想:假設演化樹上的每個節點都代表一個物種,兩節點間在演化樹上的「路徑長度」愈短,是否就顯示兩物種的親緣關係愈相近呢?(此處的路徑長度指的是演化樹上兩點間路徑上的邊個數)小美興沖沖的去和老師討論這個想法,老師的回覆是「不全然正確」。然而小美覺得她的想法頗有可取之處,還是想看看她這個觀察正確性有多高。於是小美委請一位會寫程式的同學大美,幫助她從演化樹中搜集一些她需要的資料。

大美接到的任務如下:給定一個 n 個點的演化樹,每個點代表一個物種,以及 m 個物種的配對,請計算每對物種之間的路徑長度。注意,因為小美給資料時給的很隨興,m 個物種配對中可能有很多重覆。

Input Format

每一筆測試資料包含 n+m 行,其中第一行為正整數 nm,物種編號由 0n1。接下來 n1 行每行有 2 個整數 ij,表示物種 i 和物種 j 在演化樹上有邊相連。接下來 m 行,每行有兩個整數 表示欲探討的物種對 xy。同一行的二整數以一空白分隔。其中 n105,m2.5×106

Output Format

輸出有 m 行,每行一個整數,依序為兩物種在演化樹上的路徑長度。

Sample Input 1

10 5
2 9
3 9
7 9
8 5
9 5
6 1
0 1
5 4
1 4
2 3
8 6
1 7
9 5
5 0

Sample Output 1

2
4
4
1
3

Sample Input 2

4 5
1 0
0 2
0 3
1 0
0 2
2 3
1 2
2 1

Sample Output 2

1
1
2
2
2

Hints

本題共有四組測試資料,每組可有多筆測試資料:
第一組測試資料:n500,m7×105,共 23 分;
第二組測試資料:n2000,m2000,共 32 分;
第三組測試資料:n1.5×104,m106,共 26 分;
第四組測試資料:無其他限制,共 19 分。

Problem Source

108 北市賽 pD
testdata set by Omelet

Subtasks

No. Testdata Range Constraints Score
1 0~9 n500,m7×105 23
2 10~14 n2000,m2000 32
3 10~19 n1.5×104,m106 26
4 0~34 無其他限制 19

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 262144 65536 1 4
1 1000 262144 65536 1 4
2 1000 262144 65536 1 4
3 1000 262144 65536 1 4
4 1000 262144 65536 1 4
5 1000 262144 65536 1 4
6 1000 262144 65536 1 4
7 1000 262144 65536 1 4
8 1000 262144 65536 1 4
9 1000 262144 65536 1 4
10 2000 262144 65536 2 3 4
11 2000 262144 65536 2 3 4
12 2000 262144 65536 2 3 4
13 2000 262144 65536 2 3 4
14 1000 262144 65536 2 3 4
15 1000 262144 65536 3 4
16 1000 262144 65536 3 4
17 1000 262144 65536 3 4
18 1000 262144 65536 3 4
19 1000 262144 65536 3 4
20 2000 262144 65536 4
21 2000 262144 65536 4
22 2000 262144 65536 4
23 2000 262144 65536 4
24 2000 262144 65536 4
25 2000 262144 65536 4
26 2000 262144 65536 4
27 2000 262144 65536 4
28 2000 262144 65536 4
29 2000 262144 65536 4
30 2000 262144 65536 4
31 2000 262144 65536 4
32 2000 262144 65536 4
33 2000 262144 65536 4
34 2000 262144 65536 4