推广 热搜:   公司  快速  中国  企业    行业  设备  上海  未来 

天河商城网站建设/优化大师下载安装app

   日期:2024-12-16     移动:http://keair.bhha.com.cn/mobile/quote/4608.html

大致题意

给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。

【规定买任一类的珍珠个(价格为),都要支付的钱,即额外支付】

例如样例Input的第二个例子

3

1 10

1 11

100 12

需要买第一类1个,第二类1个,第三类100个

按常规支付为 (1+10)*10 + (1+10)*11 + (100+10)*12 = 1551元(一共买了102个珍珠

但是如果全部都按照第三类珍珠的价格支付,同样是买102个,而且其中总体质量还被提高了,但是价格却下降了:(102+10)*12 = 1344元

而对于样例Input的第一个例子

2

100 1

100 2

按常规支付为 (100+10)*1 + (100+10)*2 =330元

但是全部按第二类珍珠的价格支付,同样买200个,虽然总体质量提升了,但是价格也提高了: (202+10)*2=424元

一开始想过从头到尾遍历珍珠的价格和数目,每次都看相临的两个,如果把当前这一批放入下一个等级价格降低,则将他放到下一个等级,否则直接算在当前等级的买的价格加到答案中,最后一等后设置最大值,保证不会再向后放.,但是这样的思路其实是错误的,以下是证明

价格
假设贪心得出和两个前提
但是对于即不采取归并更小的情况是否存在呢
化简式子

对比条件,我们知道

完全可以有

所以贪心策略是错的

首先证明最优解中肯定不会有交叉的替,即在质量为a<b<j<c<d的情况下,如果a被c替换,那么b也一定要被c替换 假设在最优解中存在:a被c替换且b不被c替换的情况

1.b不被任何替换 那么此时把a换成用b替换 得到比原来更优的解,错误
2.b被j替换,此时把a换成用j替换 得到比原来更优的解,错误
3.b被d替换,此时把b换成用c替换 得到比原来更优的解,错误

因此,不存在交叉的替换,那么最优解分为下面两种情况
1.不存在断点,即所有的都用最大一种替换,
2.存在断点,最后一个断点为i,那么最优解必为

每个点都有可能是最后一个断点,因此产生了我们的DP方程:

把dp[0]设成0的话 2就包含了1 dp[c]就是最后的答案

有点像最长上升子序列的问题

本文地址:http://keair.bhha.com.cn/quote/4608.html    康宝晨 http://keair.bhha.com.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号