【JZOJ3853】【NOIP2014八校联考第2场第2试9.28】帮助Bsny(help)

EVRT

Bsny的书架乱成一团了,帮他一下吧!
他的书架上一共有n本书,我们定义混乱值是连续相同高度书本的段数。例如,如果书的高度是30,30,31,31,32,那么混乱值为3;30,32,32,31的混乱值也为3。但是31,32,31,32,31的混乱值为5,这实在是太乱了。
Bsny想尽可能减少混乱值,但他有点累了,所以他决定最多取出k本书,再随意将它们放回到书架上。你能帮助他吗?
1≤k≤n≤100,注意所有书本高度在[25,32]。

COMEHERE

首先如果考虑动态规划的话,会设置 f[i][j] ,表示表示前 i 本书中,有j本书被抽走。
再想想会加上第三维 k ,表示没被抽走的书中最后一本书的高度是k
显然转移方程有两种:

1.不抽走当前这本书,容易推;
2.抽走当前这本书,但要放在哪呢?
(1)放在另一本和这本书的高度相同的书旁边;
(2)放在开头,自成一家。

讨论第(1)种情况,
–如果这所谓的“另一本”在这本书的前面,由于书的高度只有8种,所以考虑加上第四维 l ,表示没被抽走的书的高度出现情况压位(28)。

–如果这所谓的“另一本”在这本书的后面,容易得出这本书后面是否有另一本相同高度的书,预处理出来就可以。


f[i][j][k][l] ,表示前 i 本书中,有j本书被抽走,没被抽走的书中最后一本书的高度是 k ,没被抽走的书的高度出现情况压位(28)表示 l <script type="math/tex" id="MathJax-Element-2068">l</script>,的最小混乱度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值