BZOJ1430: 小猴打架
Posted Star_Feel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BZOJ1430: 小猴打架相关的知识,希望对你有一定的参考价值。
【传送门:BZOJ1430】
简要题意:
给出n个点,求组成n-1条边且n个点为一棵树的情况数
题解:
prufer数列例题
具体请膜
根据prufer数列,可以得到n^(n-2)棵树,而每棵树的建树方法为(n-1)!,所以ans=n^(n-2)*(n-1)!
参考代码:
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> using namespace std; typedef long long LL; int main() { LL n; scanf("%lld",&n); LL t=1; for(LL i=1;i<=n-2;i++) { t=(t*n)%9999991; } //t棵树 for(int i=1;i<=n-1;i++) t=(t*i)%9999991; //t种建树方法 printf("%lld\\n",t); return 0; }
以上是关于BZOJ1430: 小猴打架的主要内容,如果未能解决你的问题,请参考以下文章