1 条题解
-
0
题解
思路
令 表示已经使编号不超过 的某棵树成为当前最大已砍倒编号,并为之后工作准备好时的最小代价。初始电量可直接砍倒高度为一的第一棵树,故 。若下一个关键编号是 ,此前最大编号为 ,把第 棵树锯 次的充电贡献为 ,所以
做法
每个 对应直线 ,需要按递增的 查询最小值。斜率 严格递减,因此维护下凸包;查询点也递增,可以从队首单调弹出。中间分支在整数域 上使用 Li Chao 树;独立 Oracle 对所有实际 离散化后使用 Li Chao 树。
正确性证明
转移枚举了最后一次把当前最大已砍倒编号从 更新为 的全部可能,费用恰为已有最优费用加 次按 充电,故动态规划正确。凸包只删除在任何后续递增查询点都不可能成为最小值的直线,队首比较给出当前横坐标的最小值,因此优化不改变转移结果。
复杂度
单调凸包实现时间复杂度 ,空间复杂度 。
- 1
信息
- ID
- 1457
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者