Qual C 樹上的三角形

2021-08-07 22:06:10 字數 1006 閱讀 4522

總時間限制: 

4000ms 

單個測試點時間限制: 

2000ms 

記憶體限制: 

262144kb

描述

有一棵樹,樹上有只毛毛蟲。它在這棵樹上生活了很久,對它的構造瞭如指掌。所以它在樹上從來都是走最短路,不會繞路。它還還特別喜歡三角形,所以當它在樹上爬來爬去的時候總會在想,如果把剛才爬過的那幾根樹枝/樹幹鋸下來,能不能從中選三根出來拼成乙個三角形呢?

輸入輸入資料的第一行包含乙個整數 t,表示資料組數。

接下來有 t 組資料,每組資料中:

第一行包含乙個整數 n,表示樹上節點的個數(從 1 到 n 標號)。

接下來的 n-1 行包含三個整數 a, b, len,表示有一根長度為 len 的樹枝/樹幹在節點 a 和節點 b 之間。

接下來一行包含乙個整數 m,表示詢問數。

接下來m行每行兩個整數 s, t,表示毛毛蟲從 s 爬行到了 t,詢問這段路程中的樹枝/樹幹是否能拼成三角形。

1 ≤ t ≤ 5

小資料:1 ≤ n ≤ 100, 1 ≤ m ≤ 100, 1 ≤ len ≤ 10000

大資料:1 ≤ n ≤ 100000, 1 ≤ m ≤ 100000, 1 ≤ len ≤ 1000000000

輸出對於每組資料,先輸出一行"case #x:",其中x為資料組數編號,從 1 開始。

接下來對於每個詢問輸出一行,包含"yes"或「no」,表示是否可以拼成三角形。

樣例輸入

2

51 2 5

1 3 20

2 4 30

4 5 15

23 4

3 55

1 4 32

2 3 100

3 5 45

4 5 60

21 4

1 3

樣例輸出

case #1:

noyes

case #2:

noyes

樹上三角形

description 給定一大小為n的有點權樹,每次詢問一對點 u,v 問是否能在u到v的簡單路徑上取三個點權,以這三個權值為邊長構成乙個三角形。同時還支援單點修改。input 第一行兩個整數n q表示樹的點數和運算元 第二行n個整數表示n個點的點權 以下n 1行,每行2個整數a b,表示a是b的...

樹上三角形

題目描述 給定乙個大小為n的有點權樹,需要支援兩個操作。0 詢問 u,v 能否在u到v的簡單路徑上取三個點,使這三個點的點權作為邊長可以構成乙個三角形。1 修改某個點的點權。輸入格式 第一行兩個整數n,q表示樹的點數和運算元。第二行n個整數表示n個點的初始的點權。接下來n 1行,每行兩個整數a,b,...

樹上三角形 tri

時間限制 1 sec 記憶體限制 256 mb 題目描述 給定一大小為n的有點權樹,每次詢問一對點 u,v 問是否能在u到v的簡單路徑上取三個點權,以這三個權值為邊長構成乙個三角形。同時還支援單點修改 輸入 第一行兩個整數n q表示樹的點數和運算元 第二行n個整數表示n個點的點權 以下n 1行,每行...