码迷,mamicode.com
首页 > Web开发 > 详细

[BZOJ4709][JSOI2011]柠檬 决策单调性优化dp

时间:2017-08-28 00:45:38      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:一个   开始   表示   span   朴素   problem   www   online   链接   

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4709

我好弱啊QAQ,网上dalao们的题解根本看不懂啊,折腾了几个小时,有一点明白了。

首先要把朴素dp方程退出来。

①题目中说每次从序列的左右选一端取,但是如果你真的照着题目说的这样做我也不知道会怎么样。事实上很明显不管怎么取,最终答案都只跟划分出的是哪几个区间有关。所以不妨从左端开始取。

②如果取一个区间,区间第一个贝壳的大小和最后一个贝壳的大小不一样,那么很明显可以去掉第一个或最后一个贝壳,把他们加入另一个区间贡献答案,而这一次选取的区间本身答案不会变。于是我们每次取一段区间都可以贪心地来取,使得第一个贝壳和最后一个贝壳大小一定相同。

有了这两个准则方程很容易就出来了$$f[i]=max\{f[j-1]+a[i]*(s[i]-s[j]+1)^2\}$$

其中$s[i]$表示直到第$i$个数$a[i]$出现的次数

未完待续……

[BZOJ4709][JSOI2011]柠檬 决策单调性优化dp

标签:一个   开始   表示   span   朴素   problem   www   online   链接   

原文地址:http://www.cnblogs.com/halfrot/p/7440794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!