首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

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

2013-09-05 
hdu 4472 Count (2012 ACM-ICPC 成都现场赛)递推,考虑到一n可以由i * j1组合出来,即第二层有j个含有i个元

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;    }}


热点排行