JZOJ 2931 书架

Description

Farmer John闲下来的时候,他喜欢坐下来读一本好书。
多年来,他已经收集了N本书 (1 <= N <= 100,000)。
他想要建立一个多层书架,来存放它们。
每本书 i 拥有一个宽度 W(i)和一个高度 H(i)。
所有的书需要按顺序,放到书架的每一层。
举例来说,第一层书架放k本书,应该放书1…k;第二层书架从第k+1本书开始放……。
每层书架的宽度最多为L (1 <= L <= 1,000,000,000)。
每层书架的高度为该层最高的那本书的高度。
书架的总高度为每层书架高度之和。
请帮FJ计算书架可能的最小总高度。

Input

第1行:两个空格隔开的整数:N和L
第2…N+1行:第i+1行包含两个空格隔开的整数:H(i) 和 W(i) 。(1 <= H(i) <= 1,000,000; 1 <= W(i) <= L)。

Output

第1行:书架可能的最小总高度

Sample Input

5 10
5 7
9 2
8 5
13 2
3 8

Sample Output

21

Data Constraint
Hint

【样例解释】
3层书架,第1层放书1(高5,宽7),第2层放书2…4(高13,宽9),第3层放书5(高3,宽8)
【数据范围】
40%的数据满足 N<=2000

分析

比赛的时候,我看错题了。
我以为书可以不按顺序放,打了个贪心。。
然后就没有然后了…
实际上这是个Dp。
可以列出状态 F i F_i Fi表示以 i i i为最后一层的最后一本的最小高度。
转移显然 F i = min ⁡ [ F j + max ⁡ ( h [ i , j ] ) ∣ ( ∑ i , j k w k ) ≤ L ] F_i=\min [F_j+\max(h_{[i,j]})|(\sum_{i,j}^kw_k)\leq L] Fi=min[Fj+max(h[i,j])(i,jkwk)L]
并且显然会超时 需要优化

单调队列该上场了

对于 ( ∑ i , j k w k ) &gt; L (\sum_{i,j}^kw_k)&gt;L (i,jk

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值