内存:32  时间:1

题目描述

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)

输入

The first line of the input contains the number of test cases in the file. And t he first line of each case
contains one integer numbers n

输出

For each test case, output a line with the ans % 1000000000.

样例输入

1
7

样例输出

6

提示

代码如下

#include<cstdio>
#include<iostream>
#include<cmath>
#include<memory.h>
using namespace std;
int dp[1000005];
int n;
int main()
{	
    int k=0,t;
   	while(pow(2,k+1)<1000000)
	 k++;
	 dp[0]=1;
	for(int i=1;i<=1000000;i*=2)
		{
			for(int j=i;j<=1000000;j++)
			 dp[j]=(max(dp[j],dp[j-i]+dp[j])%1000000000);
		}
	scanf("%d",&t);
	for(int p=0;p<t;p++)
	{
		scanf("%d",&n);
		printf("%d
",dp[n]);
    }
	return 0;
}

代码来源于互联网,仅供参考!