POJ 1260.Pearls
2017-11-27 18:27
246 查看
题目:http://poj.org/problem?id=1260
AC代码(C++):
总结: 动态规划. 刚开始的想法是从后面往前算, 可是一直WA. 后来想了下如果从后面往前, 设i>j>k, 可能出现第j组珍珠以第i组的价格购买, 但是如果第k组珍珠和第j组一起以第j组的价格购买的话更便宜, 则会把这种情况忽略掉. 改成从前往后更新就AC了.
AC代码(C++):
#include <iostream> #include <algorithm> #include <stdio.h> #include <vector> #include <queue> #include <math.h> #include <string> #include <string.h> #include <bitset> #define INF 0xfffffff #define MAXN 100105 using namespace std; int n; int a[105],p[105],sum[105]; int dp[105]; int main(){ int t; cin>>t; while(t--){ cin>>n; sum[0] = 0; for(int i = 1; i <= n; i++){ scanf("%d %d",&a[i],&p[i]); sum[i] = sum[i-1] + a[i]; } dp[0] = 0; for(int i = 1; i <= n; i++){ dp[i] = dp[i-1] + (a[i]+10)*p[i]; for(int j = 0; j < i; j++){ dp[i] = min(dp[i],dp[j] + (sum[i]-sum[j]+10)*p[i]); } } cout<<dp[n]<<endl; } }
总结: 动态规划. 刚开始的想法是从后面往前算, 可是一直WA. 后来想了下如果从后面往前, 设i>j>k, 可能出现第j组珍珠以第i组的价格购买, 但是如果第k组珍珠和第j组一起以第j组的价格购买的话更便宜, 则会把这种情况忽略掉. 改成从前往后更新就AC了.
相关文章推荐
- POJ 1260 Pearls 【动态规划】
- poj-1260-Pearls
- POJ-1260 Pearls 【DP】
- Poj 1260 Pearls
- POJ 1260 Pearls(DP)
- POJ-1260-Pearls-动规
- poj-1260 Pearls
- POJ 1260 简单dp问题 Pearls
- POJ - 1260 Pearls(二维dp)解题报告
- poj-1260 Pearls
- POJ_1260_Pearls_动态规划
- poj 1260 Pearls(DP)
- poj 1260 Pearls ( 区间dp )
- POJ-1260-Pearls
- POJ 1260 Pearls (简单DP)
- poj 1260 Pearls
- POJ 1260-Pearls 动态规划
- poj 1260 Pearls 动态规划
- hdu1300 & poj1260 Pearls
- POJ 1260--Pearls