POJ 1260
2013-10-02 15:49
405 查看
#include<iostream> #include<fstream> #include<cstdlib> using namespace std; //#define DEBUG /* 244K 0MS */ static const int MAX = 101; static int count[MAX]; static int price[MAX]; static int presum[MAX]; static int n; static int f[MAX]; int main() { #ifdef DEBUG fstream cin("G:\\book\\algorithms\\acm\\Debug\\dat.txt"); #endif int t; cin >> t; while (t-- > 0) { cin >> n; int i, j; for (i = 1; i <= n; i++) { cin >> count[i] >> price[i]; presum[i] = presum[i - 1] + count[i]; } f[1] = (count[1] + 10) * price[1]; for (i = 2; i <= n; i++) { int min = (presum[i] + 10) * price[i]; for (j = 1; j < i; j++) /* 列举全部可能性 找到最小值 */ { int tmp = (presum[i] - presum[j] + 10) * price[i] + f[j]; if (tmp < min) min = tmp; } f[i] = min; } printf("%d\n", f ); } return 0; }
POJ1260
对于第i项,列举其全部的可能组合,进行比较找到其中的最小值,就是解。题目中的输入数据已经做了部分简化,
1.输入数据按照price的升序进行排列
2.购买时的替代是单方向的
从本质上讲这一题还是一个“划分”的变形。找到划分方法也就找到了动态转移方程。
相关文章推荐
- 【poj1260】 Pearls
- poj1260 Pearls
- poj1260 Pearls
- POJ 1260:Pearls 珍珠DP
- POJ 1260 dp
- POJ 1260 Pearls
- poj 1260 Pearls
- 【POJ 1260】Pearls
- POJ 1260-Pearls(DP)
- POJ-1260 Pearls DP
- POJ - 1260 Pearls(二维dp)解题报告
- poj_2533_Longest Ordered Su... poj_1260_Pearls hdu_1025_Constructing Roa... poj_2533_Longest Ordered
- POJ 1260-Pearls(DP)
- 简单dp-poj-1260
- poj1260
- poj 1260 Pearls 斜率优化dp
- POJ 1260 Pearls(DP)
- POJ 1260 Pearls
- poj1260 —— 最少的钱买完所需珍珠
- POJ 1260.Pearls