POJ-1260 Pearls (dp)
来源:互联网 发布:java post 二进制 编辑:程序博客网 时间:2024/05/27 14:14
题目链接:点击打开链接
题意:
给你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;}
0 0
- POJ 1260 Pearls DP
- poj-1260-Pearls-dp
- poj 1260Pearls DP
- Pearls - POJ 1260 dp
- POJ 1260-Pearls(dp)
- poj 1260 Pearls dp
- POJ 1260 Pearls(DP)
- POJ 1260 Pearls (DP)
- poj-1260 -Pearls-DP
- POJ 1260 Pearls DP
- 【Poj 1260】 Pearls dp
- POJ-1260 Pearls (dp)
- POJ 1260 Pearls DP
- POJ 1260 Pearls DP
- POJ-1260 Pearls 【DP】
- POJ 1260 Pearls (基础DP)
- POJ - 1260 Pearls 区间dp
- POJ 1260-Pearls(DP)
- 给自己看的NIM
- Js实现京东大的轮播图及相关动画效果
- Android Studio – Cannot resolve symbol ‘R’
- catalan数
- $_SERVER详解
- POJ-1260 Pearls (dp)
- python——word2vec
- [tyvj1052]没有上司的舞会
- 关于relative和absolute属性
- ELK之Logstash
- 堆排序
- Hdu 4435 charge-station(BFS+贪心)
- 题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的结点形成一条路径。
- application、session、request