dp-poj2229
来源:互联网 发布:在线客服软件有哪些 编辑:程序博客网 时间:2024/06/07 03:25
Language:
Sumsets
Time Limit: 2000MS Memory Limit: 200000KTotal Submissions: 11154 Accepted: 4479
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).
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递推是不好找。我们假设规定序列按从小到大的顺序,当N为奇数时,第一个数必须为1,所以F(I)=F(I-1)。。当n为偶数时,分两种情况讨论,若第一个数为1,则F[I]=F[I-1],若第一个数不为奇数,则所有数都不为奇数,提取一个2出来,发现是f[n/2],所以,f[n]=f[n-1]+f[n/2]下面是代码:#include<iostream>#include<set>#include<map>#include<vector>#include<queue>#include<cmath>#include<climits>#include<cstdio>#include<string>#include<cstring>#include<algorithm>typedef long long LL;using namespace std;const int MOD=1000000000;int N;int dp[1000005];int main(){ fill(dp,dp+1000004,0); dp[0]=1; for(int i=1; i<=1000000; i++) { if(i%2==1) dp[i]=dp[i-1]%MOD; else dp[i]=(dp[i-1]+dp[i/2])%MOD; } while(cin>>N) cout<<dp[N]%MOD<<endl;return 0;}
- dp-poj2229
- poj2229 dp
- poj2229 简单DP
- [dp]poj2229 Sumsets
- POJ2229 Sumsets(DP)
- poj2229 Sumsets(dp)
- POJ2229 Sumsets (dp)
- poj2229
- poj2229
- poj2229
- poj2229
- poj2229
- poj2229
- DP入门50题(3)——poj2229 sumsets
- poj2229 Sumsets
- poj2229 Sumsets
- POJ2229 Sumsets
- POJ2229 Sumsets
- 你不可以不知道的findViewById
- javascript 显示和隐藏控制
- Android实现三级联动下拉框 下拉列表spinner
- 关于用FTPClient资源库上传下载以中文命名的文件的问题
- 关于android中chronometer的问题
- dp-poj2229
- JavaIO之ObjectStream(一)
- JavaIO之管道(一)
- methods that start with "copy", "create", "new", "alloc", or "retain"
- JavaIO之标准输入输出(一)
- C++函数的参数及其传递方式学习笔记
- 各种排序算法及复杂度稳定性分析(一)
- cx_Oracle - ImportError: DLL load failed: The specific module could not be found
- oracle using 和on的用法不同处