樹上走自己的路


提交程序

分数: 100 (部分)
时间限制: 2.0s
内存限制: 256M

作者:
题目类型

阿偉跟杰哥自從有了心結之後,就再也不希望遇到彼此。

現在有一棵 \(n\) 個點的樹,阿偉和杰哥要在這棵樹上走路,兩人走的路都是一條簡單路徑(簡單路徑可以只有一個點)。

由於他們的心結,他們必須在這棵樹上走自己的路,也就是說兩人選的簡單路徑不能共有同一個點。

你的任務是算出阿偉和杰哥共有多少種滿足走自己的路的選擇。

更明確的說,你要算出有多少相異的簡單路徑對 \((P_a,P_b)\),使得若阿偉和杰哥其中一人走的簡單路徑是 \(P_a\) 而另一人走 \(P_b\) 的話,他們會在樹上走自己的路。

注意到 \((P_a,P_b)\) 和 \((P_b,P_a)\) 視為一樣的簡單路徑對

另外,因為算出來的答案可能很大,所以只需求出答案除以 \(10^9+7\) 的餘數就好。

也注意到,從 \(x\) 走到 \(y\) 的路徑和從 \(y\) 走到 \(x\) 的路徑視為同一個路徑,換句話說,正著走和反著走算同一條簡單路徑。

註:一條簡單路徑為每個點經過最多一次的路徑,一棵樹為滿足任兩點之間存在唯一簡單路徑的圖。

Input

第一行輸入一個正整數 \(n\)。

\(2\le n\le 2\cdot 10^5\)

接下來輸入 \(n-1\) 行,每行輸入兩個正整數 \(u_i,v_i\),代表第 \(i\) 條邊的兩個端點。

\(1\le u_i,v_i\le n,u_i\neq v_i\)

保證輸入的 \(n-1\) 條邊恰形成一棵樹。

Output

輸出一個非負整數,代表答案除以 \(10^9+7\) 的餘數。

Constraints

第 \(1\) 組測資, \(u_i=i,v_i=i+1\)。\((20\text{%})\)

第 \(2\) 組測資, \(n\le 30\)。\((25\text{%})\)

第 \(3\) 組測資, \(n\le 500\)。\((30\text{%})\)

第 \(4\) 組測資, 沒有其他限制。\((25\text{%})\)

Sample Input 1
3
1 2
2 3
Sample Output 1
5
Sample Input 2
9
5 9
7 5
6 1
5 2
6 8
6 4
5 3
6 3
Sample Output 2
320
Notes

在樹上的簡單路徑可用 \([x_1,x_2]\) 表示(\(x_1\le x_2\)),代表路徑的兩個端點為 \(x_1,x_2\)。

範例測資一中,滿足條件的簡單路徑對為以下五組:\(([1,1],[2,2]),([1,1],[3,3]),([2,2],[3,3]),([1,2],[3,3]),([1,1],[2,3])\)。


评论

目前没有评论。