摘要: 题目传送门:1146. 采药思路: 典型的0-1背包问题,不像分数背包问题可以用贪心算法,所以只能用动态规划。dp[i][j]表示在限定时间j内,只从前i个山药里面取能得到的最大价值。dp的构建同样采用自底向上的方法。 对于第i个山药,考虑取与不取,有dp[i - 1][j]和dp[i - 1][j - t[i]] + v[i]两种情况,取较大值即可。代码: 1 #include 2 #include 3 using namespace std; 4 5 6 int main(){ 7 int t,m; 8 cin >> t >> m; 9 int times[... 阅读全文
posted @ 2013-12-10 23:20 Jolin123 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 题目传送门:1264. Atomic Car Race思路: 如图,输入a1,a2,...an,图中共有n + 1个点,现在将这些点依次标记为0,1,2...n,现在要求找出由0到n的最短时间。 很容易发现求解这个问题的过程包含求解最优子结构的过程而且子问题是有重叠的,所以使用动态规划的方法。这里用s[n + 1][n + 1]来记录2个点之间的最短时间,任意 0 2 using namespace std; 3 4 int main(){ 5 int n; 6 while(cin >> n && n != 0){ 7 int a[n + 1]; 8 ... 阅读全文
posted @ 2013-12-10 11:28 Jolin123 阅读(455) 评论(0) 推荐(0) 编辑