hdu 4472 Count

来源:互联网 发布:常熟淘宝开店 编辑:程序博客网 时间:2024/06/05 02:19

        题意:n个节点的树,处于同一层的节点大小必须一样,问共有多少种不同的形态。

        思路:dp。dp(i)表示i个节点的树的答案。因为同层节点大小必须一样,在求dp(i)时,除去根,还有i-1个节点,然后枚举1~i-1中能整除i-1的数,加上即可。


#include<iostream>#include<cmath>#include<queue>#include<map>#include<set>#include<vector>#include<algorithm>#include<string.h>#include<cstdio>using namespace std;int dp[1010];int main(){dp[1]=dp[2]=1;for(int i=3;i<=1000;i++){int t=i-1;for(int j=1;j<=t;j++){if(t%j==0)dp[i]+=dp[j];dp[i]%=1000000007;}}int n;int cas=0;while(cin>>n){cas++;printf("Case %d: %d\n",cas,dp[n]);}return 0;}


0 0
原创粉丝点击