BZOJ1430小猴打架 prufer序列

2022-05-08 03:18:08 字數 687 閱讀 5666

一開始森林裡面有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,於...