POJ 2229 动态规划
2016-07-27 23:53
344 查看
POJ 2229 动态规划问题
题目的链接如下:
http://poj.org/problem?id=2229
Sumsets
Time Limit: 2000MS Memory Limit: 200000K
Total Submissions: 16603 Accepted: 6574
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
题目的链接如下:
http://poj.org/problem?id=2229
Sumsets
Time Limit: 2000MS Memory Limit: 200000K
Total Submissions: 16603 Accepted: 6574
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
//贼简单,不加注释了,完全背包再加; #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> const int MAX = 1e9; /*int V; int f[10005]; // 当前的状态,就是最小值 int w[10005]; // 物品的价值,就是 int v[10005]; // 物品的体积,也就是金币的重量*/ int dp[1000005]; using namespace std; int main() { int n, m, k; // V就是总体积,总金额 while(cin >> n){ dp[1] = 1; for(int i = 2 ; i <= n ; i++) if(i % 2 == 1) dp[i] = dp[i-1] % MAX; else dp[i] = (dp[i-1] + dp[i/2]) % MAX ; cout << dp << endl; } return 0; }
相关文章推荐
- C++动态规划之最长公子序列实例
- C++动态规划之背包问题解决方法
- C#使用动态规划解决0-1背包问题实例分析
- 动态规划
- C++ 动态规划
- 动态规划解决背包问题的核心思路
- DP(动态规划) 解游轮费用问题
- 动态规划的用法——01背包问题
- 动态规划的用法——01背包问题
- 《收集苹果》 动态规划入门
- 《DNA比对》蓝桥杯复赛试题
- 《背包问题》 动态规划
- 自顶向下动态规划解决最长公共子序列(LCS)问题
- 01背包问题
- 初学ACM - 半数集(Half Set)问题 NOJ 1010 / FOJ 1207
- 初学ACM - 组合数学基础题目PKU 1833
- 关于爬楼梯的动态规划算法
- 动态规划 --- hdu 1003 **
- POJ ACM 1001
- POJ ACM 1002