HDU1300Pearls
描述:
有几种不同的珍珠。每种珍珠都有它的单价。当然质量高的珍珠价格一定也是高的。
为了避免买家只买1个珍珠。就要求不论是买了多少个珍珠都是需要在购买数量上加10.之后乘上单价。
例如:买5个单价是10的珍珠。需要的花费是\((5+10)×10=150\).买100个单价是20的珍珠花费是\((100+10)×20=2200\)
单价越大的珍珠可以顶替单价较小的珍珠
求出满足珍珠要求的最小花费。
sf
首先可以发现,如果用价值较大的去顶替价值较小珍珠的时候
要么划算,全部顶替
要么不划算,一颗都不顶替
然后,如果可以顶替价值较小珍珠还划算,那么去顶替价值稍大的珍珠也一定划算
但是反过来结论并不成立。
所以定义dp[i]为前i种的花费
每次枚举当前珍珠要往前顶替几种珍珠
如果没有注意到这个结论,那么就要枚举珍珠类别,枚举上一种珍珠选的个数,枚举这次要选的个数
不管时间还是空间都吃不消
#include <bits/stdc++.h>
using namespace std;
int shu[109],v[109],dp[109];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>shu[i]>>v[i];
memset(dp,20,sizeof(dp));
dp[0]=0;
for(int i=1;i<=n;i++)
{
int num=0;
for(int j=1;j<=i;j++)//包括第i种的前j种
{
num+=shu[i-j+1];//要买这么多
dp[i]=min(dp[i],dp[i-j]+(num+10)*v[i]);
}
}
cout<<dp[n]<<endl;
}
}
HDU1300Pearls的更多相关文章
随机推荐
- 数据结构和算法(Golang实现)(2)简单入门Golang-包、变量和函数
包.变量和函数 一.举个例子 现在我们来建立一个完整的程序main.go: // Golang程序入口的包名必须为 main package main // import "golang&q ...
- SwiftUI - 一步一步教你使用UIViewRepresentable封装网络加载视图(UIActivityIndicatorView)
概述 网络加载视图,在一个联网的APP上可以讲得上是必须要的组件,在SwiftUI中它并没有提供如 UIKit 中的UIActivityIndicatorView直接提供给我们调用,但是我们可以通过 ...
- Git应用详解第八讲:Git标签、别名与Git gc
前言 前情提要:Git应用详解第七讲:Git refspec与远程分支的重要操作 这一节主要介绍Git标签.别名与Git的垃圾回收机制. 一.Git标签(tag) 1.标签的实质 标签与分支十分相似, ...
- 第十节:xml、re、logging模块
XML模块:(用到的时候再看)tree=xml.parse('xmltest.xml')root= tree.getroot()print(root.tag) 打印对象的标签root.attrib 获 ...
- D - Leading and Trailing LightOJ - 1282
题解:求n^k的前三位和后三位. 后三位直接快速幂对1000去余就可以了.前三位可以转换成浮点数来操作,也是用快速幂,我们只保留答案的前三位,当前值大于1000.0的话就除以10,直到结果小于等于10 ...
- 数据结构与算法--堆(heap)与栈(stack)的区别
堆和栈的区别 在C.C++编程中,经常需要操作的内存可分为以下几个类别: 栈区(stack):由编译器自动分配和释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈. 堆区(heap ...
- 13.create-react-app 构建的项目使用代理 proxy
1. 正常运行 npm run eject 2. create-react-app 的版本在低于 2.0 的时候可以在 package.json 增加 proxy 配置, 配置成如下: "p ...
- jmeter插件 --PerfMon Metrics Collector监控工具的使用
PerfMon Metrics Collector 用来监控 被压测服务器的cpu.内存.磁盘.网络等 1.服务端监控程序ServerAgent下载 https://github.com/undera ...
- react: typescript system params optimize
1.system-params-service import paramCache from "../common/param-cache" import RequestPromi ...
- 单线程下实现IO切换
1.Greenlet greenlet可以实现两个任务之间的来回切换,但遇到IO会阻塞,不会切(使用这个模块之前需要在电脑命令提示符中输入 pip3 install greenlet 进行安装) 例如 ...