時間限制:
2000ms
單點時限:
1000ms
內存限制:
256MB
描述
給定2個樹A和B,保證A的節點個數>=B的節點個數。
現在你需要對樹A的邊進行二染色。
一個好的染色方案,指不存在一個樹A中的連通塊,同時滿足以下2個條件
1. 其中只有同色的邊
2. 和B同構。兩個樹同構是指,存在一個一一映射(既是單射又是滿射),將樹B的各節點映射到不同的樹A的節點,使得原來在樹B中相鄰的點,在映射后,仍相鄰。
問是否存在一種好的染色方案。
輸入
第一行一個整數T (1<=T<=10),表示數據組數。
接下來是T組輸入數據,測試數據之間沒有空行。
每組數據格式如下:
第一行一個整數N ,表示樹A的節點總數。
接下來N-1行,每行2個數a, b (1 <= a, b <= N)表示樹A的節點a和b之間有一條邊。
接下來一行,一個整數M(1 <= M <= N),表示樹B的節點總數。
接下來M-1行,每行2個數a, b (1 <= a, b <= M)表示樹B的節點a和b之間有一條邊。
輸出
對每組數據,先輸出“Case x: ”,x表示是第幾組數據,然后接“YES”/“NO”,表示是否存在所求的染色方案。
數據范圍
小數據:1 <= N <= 20
大數據:1 <= N <= 1000000
樣例解釋
無論如何染色,只要從A中挑一條邊就行了。
- 樣例輸入
-
1 3 1 2 2 3 2 1 2
- 樣例輸出
-
Case 1: NO