HDU 4472 count(递推)
来源:互联网 发布:珠宝设计软件手机 编辑:程序博客网 时间:2024/05/22 14:09
题目:点击打开链接
题意:构造一棵树,这棵树的每一层中的节点所拥有的子节点数相等,问有多少种构造方法。
思路:对称性。根据题意,可以想到,把这棵树从中间劈开,两边一定是对称的,继续劈开左右两边的子树,依然对称。用a[i]表示节点数为 i 的树的构造方法数,a[j]表示节点数为 j 的树的构造方法数,其中 j < i ,则若(i-1)%j==0,也就是 i 个节点去掉根后的 i-1 个节点能整除 j ,则节点数为 i 的树的可以由节点数 j 的已构造好的树作为 i 的子树构造,即a[i]=(a[i]+a[j])%mod。
代码:
#include <bits//stdc++.h>using namespace std;const int mod=1e9+7;int main(){ int n,a[1010]; memset(a,0,sizeof(a)); a[1]=1; for(int i=2;i<=1000;i++) { for(int j=1;j<i;j++) if((i-1)%j==0) a[i]=(a[i]+a[j])%mod; } int cas=1; while(~scanf("%d",&n)) { printf("Case %d: %d\n",cas++,a[n]); } return 0;}
阅读全文
0 0
- hdu 4472 Count (递推)
- HDU 4472 count(递推)
- hdu 4472 Count(简单递推)
- HDU 4472 Count 递推
- hdu 4472 Count 递推
- hdu 4472 Count DP 递推
- HDOJ 4472 Count(递推)
- HDU 4472 Count (线性dp 推公式)
- HDU4472 Count (递推)
- HDU 3336 Count the string(KMP+Next数组递推)
- UVa 1645 - Count(递推)
- HDU4472 Count(递推)
- hdu 4472 递推
- HDU-#4472 Count(DP)
- HDOJ 题目3485 Count 101(递推)
- hdu 2046(递推)
- HDU 5273(递推)
- hdu 5273(递推)
- PullToRefreshListView获取接口内容,实现上拉下拉
- oracle学习总结(一)
- The best way to improve your listening
- WKWebView自动弹出键盘和隐藏输入附属视图(inputAccessoryView)
- 【NOIP2017提高A组模拟9.7】简单无向图 dp
- HDU 4472 count(递推)
- bzoj1003: [ZJOI2006]物流运输(最短路+Dp)
- n结点树至少删多少边才变成p结点树
- 如何写SysV服务管理脚本
- C#中as和is的用法
- Java基础学习总结(115)——Java 类加载机制详解
- 当工作压力比较显著
- 词向量源码解析:(5.6)ngram2vec源码解析之pairs2counts
- java 方法的重载(overloading)与重写(overwriting)