刷题——Sumsets POJ

来源:互联网 发布:linux 进程cpu使用率 编辑:程序博客网 时间:2024/06/06 05:37
/*
dp[i]=dp[i-1],i为奇数
dp[i]=dp[i-2]+dp[i/2],i为偶数
*/
#include <stdio.h>
#define ll long long
const ll mod=1e9;
ll dp[1000005];
void solve(){
    dp[0]=1;
    for(int i=1;i<=1000005;i++){
        if(i&1)dp[i]=dp[i-1];
        else{
            dp[i]=(dp[i-2]+dp[i/2])%mod;
        }
    }
}
int main(){
    int n;
    solve();
    while(~scanf("%d",&n)){
        printf("%d\n",dp[n]);
    }
    return 0;
}
原创粉丝点击