[BZOJ1430]小猴打架(prufer序列+数学相关)
2017-04-16 09:00
459 查看
题目描述
传送门题目大意:n个点每次连一条边,n-1此后形成一棵树,问生成树有多少种方式。
题解
这道题可以利用树的prufer序列来做首先,一个长度为n-2的prufer序列对应了唯一的一个n个节点的生成树,这n-2个位置可以是1~n中的任意一个数,所以一共有nn−2种
而对于一个生成树一共有n−1条树边,不同的连接方式一共有(n−1)!种
所以最终的答案即为nn−2×(n−1)!
代码
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; #define LL long long #define Mod 9999991 int n; LL ans=1; int main() { scanf("%d",&n); for (int i=1;i<=n-2;++i) ans=ans*(LL)n%Mod; for (int i=2;i<n;++i) ans=ans*(LL)i%Mod; printf("%I64d\n",ans); }
相关文章推荐
- prufer序列 图论?组合数学? BZOJ1430 小猴打架
- bzoj 1430: 小猴打架 (prufer序列+数论)
- bzoj1430 小猴打架(prufer序列+计数)
- bzoj1430: 小猴打架(prufer序列)
- 【bzoj1430】小猴打架 Prufer序列
- BZOJ.1430.小猴打架(Prufer)
- 【prufer编码】BZOJ1430 小猴打架
- [BZOJ1211][HNOI2004]树的计数(prufer序列+数学相关)
- prufer编码 与 bzoj1430小猴打架 ——by lethalboy
- 【BZOJ】【1430】小猴打架
- BZOJ1430: 小猴打架
- bzoj 1430: 小猴打架 prefer编码
- BZOJ 1430: 小猴打架
- 【BZOJ1430】小猴打架
- bzoj 1430: 小猴打架
- [BZOJ1430] 小猴打架
- BZOJ 1430: 小猴打架 prufer编码
- BZOJ1430 小猴打架
- 【bzoj1430】小猴打架
- 【BZOJ 1430】 1430: 小猴打架 (Prufer数列)