POJ-1260 Pearls (dp)
2016-08-19 21:26
369 查看
题目链接:点击打开链接
题意:
给你n种宝石的价格, 数量( 宝石的质量依次升高,). 求花费的最小值.
条件是:
1: 你每买一种宝石, 你必须多买10个.
2: 你可以用高质量的宝石代替低质量的宝石.
思路:
dp[i]代表买到第i种宝石需要花费的最小数目.
状态转移方程:
dp[i] = min(dp[i], (sum[i]- sum[j] + 10)*p[i] + dp[j]);
sum[i]代表从1到i等级的宝石总数目.
意思就是: 让j从1到n枚举, 将从j到i的宝石全部换成i等级宝石, 从中取最小值.
代码如下:
#include <iostream>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int c, *a, *p, *dp, *sum;
cin>>c;
a = new int[c+1];
p = new int[c+1];
dp = new int[c+1];
sum = new int[c+1];
sum[0] = 0;
for(int i = 1;i <= c;i++)
cin>>a[i]>>p[i], sum[i] = sum[i-1] + a[i];
dp[0] = 0;
for(int i = 1;i <= c;i++)
{
dp[i] = dp[i-1] + (a[i] + 10)*p[i];
for(int j = 0;j < i;j++)
dp[i] = min(dp[i], (sum[i]- sum[j] + 10)*p[i] + dp[j]);
}
cout<<dp[c]<<endl;
delete a;
delete dp;
delete sum;
delete p;
}
return 0;
}
题意:
给你n种宝石的价格, 数量( 宝石的质量依次升高,). 求花费的最小值.
条件是:
1: 你每买一种宝石, 你必须多买10个.
2: 你可以用高质量的宝石代替低质量的宝石.
思路:
dp[i]代表买到第i种宝石需要花费的最小数目.
状态转移方程:
dp[i] = min(dp[i], (sum[i]- sum[j] + 10)*p[i] + dp[j]);
sum[i]代表从1到i等级的宝石总数目.
意思就是: 让j从1到n枚举, 将从j到i的宝石全部换成i等级宝石, 从中取最小值.
代码如下:
#include <iostream>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int c, *a, *p, *dp, *sum;
cin>>c;
a = new int[c+1];
p = new int[c+1];
dp = new int[c+1];
sum = new int[c+1];
sum[0] = 0;
for(int i = 1;i <= c;i++)
cin>>a[i]>>p[i], sum[i] = sum[i-1] + a[i];
dp[0] = 0;
for(int i = 1;i <= c;i++)
{
dp[i] = dp[i-1] + (a[i] + 10)*p[i];
for(int j = 0;j < i;j++)
dp[i] = min(dp[i], (sum[i]- sum[j] + 10)*p[i] + dp[j]);
}
cout<<dp[c]<<endl;
delete a;
delete dp;
delete sum;
delete p;
}
return 0;
}
相关文章推荐
- POJ 1260Pearls(DP)
- POJ 1260 && HDU 1300 Pearls(dp)
- POJ 1260 Pearls (基础DP)
- POJ 1260 Pearls (DP)
- [poj1260] Pearls DP斜率优化
- Pearls - POJ 1260 dp
- POJ1260——DP——Pearls
- POJ 1260-Pearls(DP)
- POJ - 1260 Pearls 区间dp
- poj1260——Pearls(dp)
- poj1260--Pearls(dp,从一开始就想错了......)
- poj1260 Pearls(Dp)
- poj1260 Pearls (dp)
- POJ 1260 Pearls(DP)
- poj 1260 Pearls(DP)
- POJ 1260 Pearls(DP)
- POJ 1260 Pearls (简单DP)
- HDU 1300 POJ 1260 Pearls (DP)
- poj 1260 Pearls ( 区间dp )
- POJ 1260-Pearls(DP)