欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
S42909.29-9 叠垒残骸
29-9 叠垒残骸
叠垒残骸
扰动算完了,但通道里堆满了金属残骸——塌方的墙壁、碎裂的管道、废弃的零件。
"要清理。"CC说,"不然过不去。"
"咋清理?"
"叠起来。"你说,"从后往前,一层一层垒。每层总宽度不能超过下一层——不然会塌。"
"倒序?"
"对。"你说,"从终点往回堆。最后一块地基最宽,上面一层比一层窄。"
"像金字塔。"
"对。"你说,"但用废金属堆的。"
"最多能堆几层?"
"为以第块残骸为顶层时的最小宽度。"你说,",且。"
"也就是这层要比下一层窄。"
"对。"
"单调队列优化。"
"对。"
你开始写。倒序处理,单调队列维护可行决策点。
"最后一块。"你说,"宽度10。。"
"倒数第二块。"你说,"宽度5。可以和最后一块叠——,可以。。"
"倒数第三块。"你说,"宽度8。不能叠在倒数第二块上——。只能直接叠在最后一块上——,可以。。"
"三层。"
"对。"
CC开始搬——一块一块地摞。她的金属手臂在废金属中穿梭,像机械臂在管道里穿行。
"我搬底层。"她说,"你们往上加。"
"底层最宽。"
"对。"她说,"我力气大。"
Echo用投影标记每一块的位置——蓝色光点飘在残骸上,像萤火虫。
"这块放这。"她说,"那块放那。"
"你看得见?"
"我感觉得到。"她说,"每一块金属都有温度——有的凉,有的热。"
"热的?"
"刚塌下来的。"她说,"还有摩擦的余温。"
你们堆了两个小时。一座歪歪扭扭的金属塔,从地面堆到天花板。
"几层?"CC问。
"47层。"你说。
"又是47。"
"对。"你说,"47层,47步,47个希望。"
"够了。"CC说,"够我们爬上去。"
"爬上去?"
"上面有个通风口。"她说,"通往Zero核心。"
题目描述
给定个残骸的宽度,要从后往前分成若干层。每层总宽不能超过下一层。求最多能分几层。
输入格式
。然后个整数表示宽度。
输出格式
最多层数。
输入样例
3
1 2 3
输出样例
2
提示
- 倒序DP。
- 为以为顶层的最小宽度。
- ,且。
- 单调队列优化。
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |