POJ 2063 (DP)
2012-05-09 21:46
218 查看
题目:http://poj.org/problem?id=2063
完全背包,参考背包九讲第二讲:http://www.cnblogs.com/HpuAcmer/articles/2492595.html
bond看成重量,interest看成价值,本金看成背包容量。
注意三点:
(1)本金每年不一样,更新;
(2)本金,债券都是1000的倍数,除以1000减少循环次数,是大大减少;
(3)本金的循环是从某债券到本金递增,不能搞反了。
代码:
完全背包,参考背包九讲第二讲:http://www.cnblogs.com/HpuAcmer/articles/2492595.html
bond看成重量,interest看成价值,本金看成背包容量。
注意三点:
(1)本金每年不一样,更新;
(2)本金,债券都是1000的倍数,除以1000减少循环次数,是大大减少;
(3)本金的循环是从某债券到本金递增,不能搞反了。
代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> int f[50000]; int bond[11],interest[11]; int main() { int T,i,j,n,ans,tmp,t,start,year; scanf("%d",&T); do { scanf("%d%d",&start,&year); scanf("%d",&n); memset(f,0,sizeof(f)); for(i = 0 ; i < n ; ++i) { scanf("%d%d",bond+i,interest+i); bond[i] /= 1000; } while(year--) { tmp = start; tmp /= 1000; for(i = 0 ; i < n ; ++i) for(j = bond[i] ; j <= tmp ; ++j) // for(j = tmp ; j >= bond[i] ; --j) { t = f[j-bond[i]] + interest[i]; if(t > f[j]) f[j] = t; } start += f[tmp]; } printf("%d\n",start); }while(--T); //system("pause"); return 0; }
相关文章推荐
- poj——2063——Investment(dp)
- poj 动态规划DP - 2063 Investment
- poj 2063 Investment (dp 完全背包)
- poj 2063 Investment(dp背包)
- POJ 2063 Investment(dp ,空间压缩,完全背包)
- poj 1976 A Mini Locomotive(二维dp)
- poj 1695 DP
- poj 3254 Corn Fields(状态压缩dp)
- POJ 3254(动态规划-状压dp)
- poj Function Run Fun(DP)(记忆化搜索)
- poj 3186 双向队列DP
- POJ 2063 Investment
- poj 1700 Crossing River(贪心·dp)
- POJ 2541 Binary Witch 状压DP
- poj 1179 循环dp 类似矩阵连乘
- POJ-1458 Common Subsequence ( DP )
- POJ_2923 Relocation(DP)
- poj 1191 棋盘分割(dp)
- UNIMODAL PALINDROMIC DECOMPOSITIONS - POJ 1221 UVaLive 2560 dp
- POJ 1160 DP