zoukankan      html  css  js  c++  java
  • [dp] hdu 4472 Count

    意甲冠军:

    鉴于n节点,满足子节点的相同的树节点号的同一层较少不同的形式。

    思考:

    dp[i][j] 代表i节点。最后,一个层j方法节点

    由于满足同层节点,所以j一层又一层必须是j 整数倍

    所以就能得到兴许的状态

    代码:

    #include"cstdlib"
    #include"cstdio"
    #include"cstring"
    #include"cmath"
    #include"queue"
    #include"algorithm"
    #include"map"
    #define ll __int64
    #include"iostream"
    using namespace std;
    ll dp[1234][1234],sum[1234];
    ll mod=1000000007;
    int main()
    {
        int cas=1;
        memset(dp,0,sizeof(dp));
        dp[1][1]=1;
        for(int i=1;i<=1000;i++)
        {
            for(int j=1;j<=1000;j++)
            {
                for(int k=j;k<=1000;k+=j)
                {
                    if(i+k>1000) break;
                    dp[i+k][k]=(dp[i+k][k]+dp[i][j])%mod;
                }
                sum[i]=(sum[i]+dp[i][j])%mod;
            }
        }
        ll n;
        while(scanf("%I64d",&n)!=-1)
        {
            printf("Case %d: %I64d
    ",cas++,sum[n]);
        }
        return 0;
    }
    


    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    error: with modifiers "public "
    移除元素
    删除有序数组中的重复项
    最长公共前缀
    如何杀死window进程
    IDEA卡顿问题
    合并两个有序链表
    开闭原则
    字符集和sql语句GROUPBY查询的版本问题
    里氏替换原则
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4801504.html
Copyright © 2011-2022 走看看