zoukankan      html  css  js  c++  java
  • hdu 4472 Count (2012 ACM-ICPC 成都现场赛)

            递推,考虑到一n可以由i * j + 1组合出来,即第二层有j个含有i个元素的子树。。。然后就可以了。。

    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<fstream>
    #include<sstream>
    #include<bitset>
    #include<vector>
    #include<string>
    #include<cstdio>
    #include<cmath>
    #include<stack>
    #include<queue>
    #include<stack>
    #include<map>
    #include<set>
    #define FF(i, a, b) for(int i=a; i<b; i++)
    #define FD(i, a, b) for(int i=a; i>=b; i--)
    #define REP(i, n) for(int i=0; i<n; i++)
    #define CLR(a, b) memset(a, b, sizeof(a))
    #define debug puts("**debug**")
    #define LL long long
    #define PB push_back
    #define SL(a) strlen(a)
    using namespace std;
    
    const int N = 1111;
    const int MOD = 1e9 + 7;
    LL ans[N];
    
    int main()
    {
        int n, cas = 1, i, j;
        CLR(ans, 0);
        ans[1] = 1;
        for(i = 1; i < N; i ++)
        {
            for(j = 1; i * j + 1 < N; j ++)
            {
                ans[j * i + 1] += ans[i];
                ans[j * i + 1] %= MOD;
            }
        }
        while(cin >> n)
        {
            cout << "Case " << cas ++ << ": ";
            cout << ans[n] << endl;
        }
    }


  • 相关阅读:
    面向对象编程-介绍(python3入门)
    课堂作业03
    软件工程个人作业04
    团队介绍
    学习进度条
    课堂作业02
    学习进度条
    软件工程个人作业03
    课堂作业01
    软件工程个人作业02
  • 原文地址:https://www.cnblogs.com/riskyer/p/3295345.html
Copyright © 2011-2022 走看看