2229:Sumsets
- 總時間限制:
- 2000ms
- 內存限制:
- 200000kB
- 描述
- Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that sum to 7:
1) 1+1+1+1+1+1+1
2) 1+1+1+1+1+2
3) 1+1+1+2+2
4) 1+1+1+4
5) 1+2+2+2
6) 1+2+4
Help FJ count all possible representations for a given integer N (1 <= N <= 1,000,000). - 輸入
- A single line with a single integer, N.
- 輸出
- The number of ways to represent N as the indicated sum. Due to the potential huge size of this number, print only last 9 digits (in base 10 representation).
- 樣例輸入
-
7
- 樣例輸出
-
6
- 來源
USACO 2005 January Silver
代碼:
#include<cstdio>
#include<cstring>
const int MAX=10000010;
const int mod=1000000000;
long long a[MAX]={0,1};
int main(){
for(int i=2;i<MAX;i++){
if(i&1)
a[i]=a[i-1];
else
a[i]=(a[i/2]+a[i-1])%mod;
}
long long n;
while(scanf("%lld",&n)!=EOF)
printf("%lld\n",a[n]);
return 0;
}