一開始森林裡面有n只互不相識的小猴子,它們經常打架,但打架的雙方都必須不是好朋友。每次打完架後,打架
的雙方以及它們的好朋友就會互相認識,成為好朋友。經過n-1次打架之後,整個森林的小猴都會成為好朋友。 現
在的問題是,總共有多少種不同的打架過程。 比如當n=3時,就有六種不同的打架過程。
乙個整數n,n<=10^6
一行,方案數mod 9999991。496
答案可以看作是生成樹個數*生成一棵樹的方案數
根據$prufer$序列的性質(即每棵樹與其$prufer$序列一一對應),$n$個點的無向完全圖的生成樹個數為$n^$,即$n$個點的有編號無根樹個數
生成一棵樹有$n-1$條邊,那麼生成一棵樹的方案數就是這$n-1$條邊的排列數,即$(n-1)!$
#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define mod 9999991
using namespace std;
int n;
ll ans=1ll;
int main()
for(int i=1;i<=n-1;i++)
printf("%lld",ans);
}
bzoj1430 小猴打架
description 一開始森林裡面有n只互不相識的小猴子,它們經常打架,但打架的雙方都必須不是好朋友。每次打完架後,打架的雙方以及它們的好朋友就會互相認識,成為好朋友。經過n 1次打架之後,整個森林的小猴都會成為好朋友。現在的問題是,總共有多少種不同的打架過程。比如當n 3時,就有六種不同的打架...
BZOJ1430 小猴打架
標籤 prufer序列 題目傳送門 description 一開始森林裡面有n只互不相識的小猴子,它們經常打架,但打架的雙方都必須不是好朋友。每次打完架後,打架的雙方以及它們的好朋友就會互相認識,成為好朋友。經過n 1次打架之後,整個森林的小猴都會成為好朋友。現在的問題是,總共有多少種不同的打架過程...
BZOJ 1430 小猴打架 prufer編碼
prufer編碼和無根樹的轉化問題 樹化prufer 在葉子節點中尋找編號最小的節點,將與之相連的父節點加入prufer佇列裡,然後刪去該葉子節點,直至圖中只剩下2個節點,於是prufer數列共有n 2位 於是對於乙個完全圖求生成樹的個數,他的prufer序列裡有 n 2 位,每一位均可取1 n,於...