POJ 2229:Sumsets【规律】

Sumsets
Time Limit: 2000MS   Memory Limit: 200000K
Total Submissions: 15067   Accepted: 6007

Description

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). 

Input

A single line with a single integer, N.

Output

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).

Sample Input

7

Sample Output

6
思路:对于奇数来说,每个式子+1,所以式子个数不变;对于偶数来说,比n-2多2,除了n-1的那些式子+1,还有以2为基数的组成的式子,即s[n/2]个。。。。
AC-code:
#include<cstdio>
int s[1000005];
int main()
{
	int n,i;
	scanf("%d",&n);
	s[1]=1;
	s[2]=2;
	for(i=3;i<=n;i++)
	{
		if(i%2)
			s[i]=s[i-1];
		else
		{
			s[i]=s[i-2]+s[i/2];
			s[i]%=1000000000;
		}
	}
	printf("%d\n",s[n]);
	return 0;
}


你可能感兴趣的:(数学,规律)