[Vijos1130][NOIP2001]数的计数 (递推)

自己的递推一塌糊涂

考前抱佛脚

#include<bits/stdc++.h>
using namespace std;
int f[1005];
int main()
{
    int n;scanf("%d",&n);
    f[0]=f[1]=1;
    for(int i=2;i<=n;i++)
    {
        for(int j=1;j<=i/2;j++)
            f[i]=f[i]+f[j];
        f[i]++;
    }
    printf("%d
",f[n]);
}

 然后有n的复杂度的

#include<bits/stdc++.h>
using namespace std;
int f[3000005];
int sum[3000005];
int main()
{
    int n;scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        f[i]+=sum[i/2]+1;
        sum[i]=sum[i-1]+f[i];
    }
    printf("%d
",f[n]);
}
原文地址:https://www.cnblogs.com/lincold/p/9933091.html