HDU 5136 【2014广州现场赛 J】 Yue Fei's Battle
来源:互联网 发布:关于人工智能的书籍 编辑:程序博客网 时间:2024/04/30 03:04
http://acm.hdu.edu.cn/showproblem.php?pid=5136
题意
最长链为k的度<=3的无标号树个数
题解
- 若k为奇数,我们取最长链的中心,连出>=2个深度=[k/2]的二叉树。即
(CA([k/2])2+CA([k/2])1))×S([k/2]−1)+(CA([k/2])3+2CA([k/2])2+CA([k/2])1) - 若k为偶数数,我们在最长链的中间假想一个虚拟点,连出2个深度=k/2的二叉树。即
(CA(k/2)2+CA(k/2)1)
其中A(n)为深度为n的二叉树个数,S(n)为A(n)部分和。同理对深度为n的二叉树,根连出>=1个深度为n-1的二叉树。A(n)=A(n−1)×S(n−2)+(CA(n−1)2+CA(n−1)1)
code
//by wangtianyu#include <cstdio>typedef long long LL;const int mod = 1000000007;const int N = 101000;struct modn { int n; modn() { } modn(LL x) { n = (x < 0 ? (((x%mod)+mod)%mod) : x%mod); } void print() const { printf("%d\n", n); }};modn operator +(const modn& A, const modn& B) { return A.n+B.n; }modn operator -(const modn& A, const modn& B) { return A.n-B.n; }modn operator *(const modn& A, const modn& B) { return (LL)A.n*B.n; }modn power(const modn& a, LL n) { modn s = 1, t = a; for (; n; n >>= 1) { if (n&1) s = s * t; t = t * t; } return s;}const modn inv2 = power(2, mod-2);const modn inv6 = power(6, mod-2);modn g[N], s[N];modn C3(modn x) { if (x.n < 3) return 0; return x * (x - 1) * (x - 2) * inv6;}modn C2(modn x) { if (x.n < 2) return 0; return x * (x - 1) * inv2;}int main() { int n; while(scanf("%d", &n) != EOF && n) { g[0] = g[1] = 1; s[0] = 1; s[1] = 2; for (int i = 2; i <= n; i ++) g[i] = C2(g[i - 1]) + g[i - 1] + g[i - 1] * s[i - 2], s[i] = s[i - 1] + g[i]; modn ans; if (n & 1) { n = n / 2; ans = C3(g[n]) + g[n] * g[n] + (C2(g[n]) + g[n]) * s[n - 1]; } else { n = n / 2; ans = C2(g[n]) + g[n]; } ans.print(); } return 0;}
0 0
- HDU 5136 【2014广州现场赛 J】 Yue Fei's Battle
- hdu 5136 Yue Fei's Battle
- HDU 5136 Yue Fei's Battle
- HDU 5136 Yue Fei's Battle
- HDU 5136 Yue Fei's Battle
- hdu 5136 Yue Fei's Battle
- HDU 5136 Yue Fei's Battle(计数DP)
- hdu 5136 Yue Fei's Battle(计数DP)
- hdu 5136 Yue Fei's Battle 树的dp计数
- 2014ACM广州赛区现场赛J题题解.
- HDU 5131 Little Zu Chongzhi's Triangles (状压DP +2014广州现场赛)
- HDU 5131 Song Jiang's rank list (结构体+MAP,2014广州现场赛)
- HDU 5131 Song Jiang's rank list 2014ICPC广州站现场赛
- HDU 5135 Little Zu Chongzhi's Triangles (2014年广州赛区现场赛I题)
- HDU 5131 Song Jiang's rank list(2014亚洲区广州站现场赛)
- HDU 5135 Little Zu Chongzhi's Triangles(2014亚洲区广州站现场赛)
- 2014广州亚洲现场赛/HDU 5131 Song Jiang's rank list(水题)
- HDU 5135 Little Zu Chongzhi's Triangles (2014年广州赛区现场赛I题)
- ftp类
- Java程序员面试中的多线程问题
- 通过镜像下载Android源码
- 技术剖析中国菜刀原理
- android String.xml文件键值无法修改
- HDU 5136 【2014广州现场赛 J】 Yue Fei's Battle
- eclipse创建android项目,XML文件无法正常可视化预览布局
- 广义表求长度和深度C++
- URAL 1285 Thread in a Hyperspace
- wireshark
- Android中Bitmap, Drawable, Byte,ID之间的转化
- 小米面试题 计算朋友圈问题
- 第11讲 项目3-如何买玫瑰?
- java网络编程之下载文件通过多线程分块下载(二)