求n
nn個點的有根樹個數。
根據c ay
le
ycayley
cayley
定理n
nn個點的有根樹個數是nn−
1n^
nn−1
證明:
先證明標號樹枝的個數推導得先是n
nn個沒有邊的點,加入了k
kk條邊後剩下的可以加邊的個數為n(k
−1
)n(k-1)
n(k−1)
(從任意乙個點為根,然後要連線不是這個點所在樹枝的根)
然後答案就應該是
∏ i=
1n−1
n(n−
i)=n
n−1(
n−1)
!\prod_^n(n-i)=n^(n-1)!
i=1∏n−
1n(
n−i)
=nn−
1(n−
1)!然後不標號的話就是nn−
2n^
nn−2
n
nn個不同點的有根樹個數為nn−
1n^
nn−1
n
nn個不同點的無根樹個數為nn−
2n^
nn−2
這道題對應第1種情況
#include
#define ll long long
using
namespace std;
ll n,m,p=
1e9+
9,t;
ll qsm
(ll x,ll c)
return ans;
}int
main()
}
P4430 小猴打架 P4981 父子
當然你也可以理解為 cayley 公式,其實這個公式就是prufer編碼經過一步就能推出的 p4430 小猴打架 p4981 父子 這倆題差不多 先說父子,很顯然題目就是讓你求 n 個點的有根樹有幾條 n 個點的無根樹的 prufer 編碼有 n 2 位,且編碼和樹一一對應並且每一位可以重複 那麼就...
線段樹 P4588 TJOI2018 數學計算
這道題目,看起來只給了乙個數,與線段樹關係不大,但是將每次的操作存起來,就相當於是點更新,段查詢 乘積 這樣就可以轉化為線段樹的問題了。對於操作1,我們可以把對應的位置修改為相應值 操作2,把當前位置,和pos的位置改為1 並維護線段樹即可 includeusing namespace std co...
洛谷P1268 樹的重量 貪心,數學
題目 分析 1 貪心 先處理點1 2構成的進化樹,再把點3加進,再把點4加進,直到所有點加進。2 數學 已有點1 2 k構成的進化樹,要將點k 1加入,有以下加入法。加到點1 2的路徑中 加到點1 3的路徑中 加到點k 2 k 1的路徑中。假設加到點i j的路徑中,則新增加的數值是 m i k 1 ...