【动态规划】poj 1857 To Europe! To Europe!
2017-08-22 13:54
49 查看
题目见http://bailian.openjudge.cn/practice/1857/
解题思路:采用动态规划的思想,考虑到每一位置的最优解,即到位置i时,依次将i-1, i-2, ….放入一组,直到该组超重为止,记录最优值。有点绕,但想清楚其实就简单了,只关注当前位置,记录最优。
解题思路:采用动态规划的思想,考虑到每一位置的最优解,即到位置i时,依次将i-1, i-2, ….放入一组,直到该组超重为止,记录最优值。有点绕,但想清楚其实就简单了,只关注当前位置,记录最优。
#include <iostream> #include <iomanip> using namespace std; int main() { int weight, num; double len; int w[10010], v[10010]; double res[10010]; while (cin >> weight >> len >> num) { len = len * 60; if (weight == 0 && len == 0 && num == 0) break; for (int i = 1; i <= num; i++) { cin >> w[i] >> v[i]; } double sum = 0; res[0] = 0.0; for (int i = 1; i <= num; i++) { int minnum = v[i]; int loadnum = w[i]; res[i] = 1.0*len / v[i] + res[i - 1]; for (int j = i-1; j >= 1; j--) { if (loadnum + w[j] > weight) break; else { loadnum += w[j]; if (v[j] < minnum) minnum = v[j]; if (res[i] > res[j - 1] + 1.0* len / minnum) { res[i] = res[j - 1] + 1.0* len / minnum; } } } } cout << fixed << setprecision(1) << res[num] << endl; } //system("pause"); return 0; }
相关文章推荐
- POJ 1050-To the Max (动态规划)
- POJ 1050 To the Max -- 动态规划
- POJ 1050 To the Max -- 动态规划
- poj 1050 To the Max(动态规划处理二维最大子段和)
- [ACM_动态规划] POJ 1050 To the Max ( 动态规划 二维 最大连续和 最大子矩阵)
- POJ 1050 To the Max(动态规划、最大子矩阵和)
- poj 动态规划之1050 To the Max
- POJ 1050 To the Max (动态规划——求最大子矩阵和)
- 【动态规划】[POJ 1050]To the Max
- poj1050 To the Max (动态规划)
- POJ 1050 求最大子矩阵和 动态规划
- poj Apple Catching(动态规划)
- poj 2385 动态规划
- poj 动态规划
- POJ 1836-ALignment 动态规划
- Poj 1050 动态规划
- POJ 1163题 数字三角形问题(动态规划)
- POJ 2762 Going from u to v or from v to u? 图的单连通性 tarjan or kosaraju
- 动态规划 House Robber;Best Time to Buy and Sell Stock
- 动态规划专题:POJ 动态规划题目列表