HDU1300 Pearls
question:有几种不同的珍珠。每种珍珠都有它的单价。当然质量高的珍珠价格一定也是高的。为了避免买家只买很少的珍珠。
就要求不论是买了多少个珍珠都是需要在购买数量上加10.之后乘上单价。求出总的花费!例如:买5个单价是10的珍珠。需要
的花费是(+)*= .买100个单价是20的珍珠。需要的花费是(+)*= .总共需要的花费是150+=.
如果把珍珠的质量提高了。需要的105个珍珠都买单价是20的。也就是说都买质量好的。总的花费是(++)*= .
在两组数据看来。珍珠都买了高品质的了,而且花费也少了!问题是怎么样能花费最少买珍珠!
Add:合并肯定是相邻的合并。比如啊a<b<c的三种品质珍珠,如果把a珍珠和高品质的珍珠,肯定不会跳过b去和c合并,因为a和
b或者c合并都达到了减少数量10的目的,然而后者单价上去了。所以就成了相邻单元合并模型的DP。
对第i种珍珠
一:前n-1种按照前面的最优值购买(无后效性),第n种单独买
二:从第k种到第n种数量合并购买,其中k从1取到n
HDU1300
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<memory.h>
#include<algorithm>
using namespace std;
int a[],c[],dp[],sum[];
int main()
{
int T,n,i,k,tmp;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
memset(dp,,sizeof(dp));
for(i=;i<=n;i++) {
scanf("%d%d",&a[i],&c[i]);
sum[i]=sum[i-]+a[i];
}
for(i=;i<=n;i++){
dp[i]=dp[i-]+(a[i]+)*c[i];
for(k=;k<i;k++){
tmp=dp[k-]+(sum[i]-sum[k-]+)*c[i];
if(dp[i]>tmp) dp[i]=tmp;
}
}
printf("%d\n",dp[n]);
}
return ;
}
HDU1300 Pearls的更多相关文章
- HDU1300 Pearls —— 斜率优化DP
题目链接:https://vjudge.net/problem/HDU-1300 Pearls Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...
- HDU1300 Pearls(可斜率优化)
+)*= +)*= .总共需要的花费是150+=++)*= .在两组数据看来.珍珠都买了高品质的了,而且花费也少了!问题是怎么样能花费最少买珍珠! Add:合并肯定是相邻的合并.比如啊a<b&l ...
- Programming pearls 编程珠玑的题目
Programming pearls 编程珠玑的题目 这段时间有空都在看编程珠玑,很经典的一本书,一边看一边用 python 做上面的题目,我做的都放到 github 上了 https://githu ...
- hdu5009 Paint Pearls (DP+模拟链表)
http://acm.hdu.edu.cn/showproblem.php?pid=5009 2014网络赛 西安 比较难的题 Paint Pearls Time Limit: 4000/2000 M ...
- POJ 1260 Pearls
Pearls Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6670 Accepted: 3248 Description In ...
- HDU 5009 Paint Pearls 双向链表优化DP
Paint Pearls Problem Description Lee has a string of n pearls. In the beginning, all the pearls ha ...
- POJ 1260:Pearls(DP)
http://poj.org/problem?id=1260 Pearls Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8 ...
- Pearls
Pearls Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7980 Accepted: 3966 Description In ...
- 2014 ACM/ICPC Asia Regional Xi'an Online Paint Pearls
传说的SB DP: 题目 Problem Description Lee has a string of n pearls. In the beginning, all the pearls have ...
随机推荐
- webStrom2017.1版本如何添加vue.js插件
第一步:打开webStrom-setting 第二步:选择File and Code Templates--点击左上角"+"号 第三步:在Name:vue File Exte ...
- 小程序脚本语言WXS,你想要的都在这里了
WXS脚本语言是 Weixin Script脚本的简称,是JS.JSON.WXML.WXSS之后又一大小程序内部文件类型.截至到目前小程序已经提供了5种文件类型. 解构小程序的几种方式,其中一种方式就 ...
- 微信小程序中的微信支付js代码和流程详解
微信支付流程 步骤 (一)获取用户的信息 (二)统一下单(返回的prepay_id用于第(三)步的请求参数) (三)发起支付请求 操作(这边假设你已经获得了用户的openId) (一).获取用户ope ...
- 201521123056 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 答: 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译 ...
- Eclipse rap 富客户端开发总结(6) : 如何发布rap到tomcat
1.先下载以来的打包插件 war products 输入下面的地址,选择相应的插件 新建一个 war product Configutation向导 下面的war product Configut ...
- Hyperledger Fabric 1.0 从零开始(二)——环境构建(公网)
1:环境构建 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0.因此,启动Fabric网络中的节点需要先 ...
- Could not chdir to home directory /home/USER: Permission denied
Could not chdir to home directory /home/USER: Permission denied 2 years ago davidzhang We changed t ...
- Linux tomcat 去除项目名端口号直接用ip或者域名访问网站
网站开发过程中,一般的工程访问路径是 http://10.10.10.10:8080/projectName如何设置成http://10.10.10.10/ 解决方法: 首先,进入tomcat的安装 ...
- XtraGrid滚轮翻页
滚轮翻页与传动的翻页更为方便,经过本人一番探讨与琢磨终于在XtraGrid的GridView中实现了鼠标滚轮翻页. 我新建了一个组件继承原本的GridControl,在组件中添加了一个ImageLis ...
- touch.js——常见应用操作
touch.js--常见应用操作 基本事件: touchstart //手指刚接触屏幕时触发 touchmove //手指在屏幕上移动时触发 touchend //手指从屏幕上移开时 ...