1. 程式人生 > >[隱藏] 省選模擬賽 作業[程式碼未完成]

[隱藏] 省選模擬賽 作業[程式碼未完成]

題目描述

老師讓heaplax寫作業。

heaplax不喜歡寫作業,導致他寫作業時做了一個夢。

heaplax夢到他來到了樹之國。樹之國有個$n$城市和$n - 1$條雙向道路,任意兩個城市都能通過這些道路相連。

由於道路老化,有些道路可能不能通行。樹之國的通行度定義為每個聯通塊大小的平方和。

heaplax想知道,對於每個$i(0 \le i \le n)$,樹之國中恰好條道路無法通行時樹之國的通行度的期望值,對$10^9 + 7$取模。

若答案為$\frac{p}{q}$,你需要輸出$ans$滿足$p \equiv ans * q (mod \ 10^9 + 7)$。

輸入輸出格式

輸入格式:

第一行一個整數$n$,表示樹之國的城市數。

下面$n - 1$行每行兩個整數$u, v$,表示$u, v$之間有一條邊。

 

輸出格式:

輸出一行$n$個整數,第$i$個整數表示樹之國中恰好$i - 1$條道路無法通行時樹之國的通行度的期望值對$10^9 + 7$取模後的值。


聯通塊大小的平方可看作$\sum\limits_{u \in S}\sum\limits_{v \in S} 1$,那麼只需統計有序點對$(u, v)$在同一聯通塊的方案數即可。

因為若一個點對存在那麼它們之間經過的邊也必須存在,所以它們的存在性與點對距離有關。

用點分治求出$Sum_i$(樹上距離為$i$的點對數),子樹合併時用$MTT$,那麼$ans_i = \sum\limits_j Sum_j * C_{n - 1 - j}^i$,即除了當前點對上的$j$條邊其餘邊任選$i$條刪去