hdu 4472 Count (2012 ACM-ICPC 成都现场赛)

系统 1668 0

        递推,考虑到一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;

    }

}
  


 

 

hdu 4472 Count (2012 ACM-ICPC 成都现场赛)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论