ZOJ 3604 Tunnel Network
来源:互联网 发布:开源行情软件 编辑:程序博客网 时间:2024/06/05 00:37
开始想找递推公式,果然失败了。不过对于给定的n和s,可以对n-s个点先排列然后划分成s份,然后计算有x个点树有多少种。这样显然不好递推,也没法写公式。事实上对任意n个点构成的树对应一个长为n-2的Prufer序列,且这种关系是一一对应。所谓Prufer序列是每次拿掉编号最小的叶节点然后将它的父亲push,直到只剩下两个节点。因此可以假定有点0与s个城市分别相连,问题转化为这n+1个点构成的树的Prufer序列有多少种。注意到序列倒数第s个数必为1~s中的某一个且最后s-1个数必为根节点0,于是排列数为n^(n-s-1)*s。能在比赛时想到这么多的真是厉害啊,类似这种博闻题还有3591和3599。
#include <cstdio>#define Mod 1000000007int T, s, t;long long n, r;inline int cal(){if(n == s) return 1;t = n-s-1, r = s;while(t > 0){if(t&1) r=(r*n)%Mod;t >>=1, n=(n*n)%Mod;}return r;}int main(){scanf("%d", &T);while(T --){scanf("%d%d", &n, &s);printf("%d\n", cal());}return 0;}
- ZOJ 3604 Tunnel Network
- ZOJ 3604 Tunnel Network
- ZOJ 3604 Tunnel Network
- TOJ 4287 ZOJ 3604 Tunnel Network / prufer序列
- zoj 3604 Tunnel Network(数字快速幂)
- ZOJ 3604 Tunnel Network [Prüfer编码与Cayley公式] 【树】
- TOJ 4287 Tunnel Network -- Prufer序列
- ZOJ 1586 QS Network
- zoj 1542 Network【kruskal】
- zoj 1914 Arctic Network
- ZOJ 1586 QS Network
- zoj 2676 Network Wars
- zoj 1586 QS Network
- ZOJ 1586 QS Network
- ZOJ-1586-QS Network
- ZOJ 1542 Network
- zoj 1542 Network
- zoj 1967 Fiber Network
- HDOJ1010
- 很久没来CSDN了,看来离技术越来越远了
- 创建自定义控件2-自定义绘制
- C++赋值构造函数和赋值运算符的重载
- C#简单的面试题目(三)
- ZOJ 3604 Tunnel Network
- AJAX--显示加载中并弹出图层遮挡页面
- SVN简介
- SGU 111 大数开根号
- 第六周上机任务项目1-(2)
- 重定向(redirect)与管道(pipe)
- WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂
- C++ static、const和static const 以及它们的初始化
- 十天学会Div+CSS第三天之【二列和三列布局】