传送门

描述:

有几种不同的珍珠。每种珍珠都有它的单价。当然质量高的珍珠价格一定也是高的。

为了避免买家只买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的更多相关文章

随机推荐

  1. 智能指针 shared_ptr

    1.不支持数组 2.c++11支持make_shared,分配一次内存,构造函数为private和proteced时不能调用. 3.new初始化分配两次内存,一.分配数据块内存,二.分配控制块内存

  2. 在IDEA中搭建Java源码学习环境并上传到GitHub上

    打开IDEA新建一个项目 创建一个最简单的Java项目即可 在项目命名填写该项目的名称,我这里写的项目名为Java_Source_Study 点击Finished,然后在项目的src目录下新建源码文件 ...

  3. AJ学IOS 之小知识之_xcode插件的删除方法_自动提示图片插件KSImageNamed有时不灵_分类或宏之类不能自动提示,

    AJ分享,必须精品 一:解决解决自动提示图片插件KSImageNamed有时不灵_分类或宏之类不能自动提示 其实,插件神马的我们自己也能写,并没有想象中的那么难,不过目前我们还是先解决当前问题 在做微 ...

  4. Android UIAutomator自动化测试

    描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试. UIAutomator不需要测试人员了解代码 ...

  5. android学习笔记——计时器实现

    根据android疯狂讲义来写写代码,在博客里面将这些写过的代码汇总一下.实现的功能很简单:就是一个简单的计时器,点击启动按钮会开始计时,当计时到20秒时会自动停止计时. 界面如下: 界面代码: &l ...

  6. Daily Scrum 1/6/2015

    Process: Zhaoyang: Complete the speech API test and do some UI upgrade. Yandong: Help zhaoyang to do ...

  7. stand up meeting 12/11/2015

    part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 完成单词释义热度排序:允许用户自主添加释义:完成了button位置的修正(finally)和弹窗的美化:     6 tr ...

  8. vue的组件通讯

    Vue的组件通讯又称组件传值 一.父子组件传值: 父组件: <子组件名   :动态变量名 (随便起)='你想要传递的数据' ></子组件名> 子组件: 利用 prop去接收父组 ...

  9. E - Dungeon Master BFS

    [NWUACM] 你被困在一个三维的空间中,现在要寻找最短路径逃生!空间由立方体单位构成你每次向上下前后左右移动一个单位需要一分钟你不能对角线移动并且四周封闭是否存在逃出生天的可能性?如果存在,则需要 ...

  10. E1. Send Boxes to Alice (Easy Version)

    题解: 保存每个1的位置.然后记录1的总个数cnt,如果存在一个k使得这个k是每个集合的倍数,那么为了使操作次数最小,这个k应该是cnt的质因子.(因为都是每个集合的数目1,使每个集合的数目变为2需要 ...