欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1749B.Death's Blessing
Death's Blessing
题目描述
你正在玩一款电脑游戏。为了通过当前关卡,你需要消灭一大群怪物。在这群怪物中,有 个怪物排成一排,编号从 到 。第 个怪物有 点生命值,并且附带一个强度为 的特殊“死亡祝福”法术。
你需要依次消灭所有怪物。消灭一个生命值为 的怪物需要恰好 秒。
当第 个怪物死亡时,它会释放法术,使其相邻怪物的生命值各增加 (第 个怪物的相邻怪物是第 个和第 个怪物。第一个和最后一个怪物各只有一个相邻怪物)。
每当一个怪物被消灭后,队列会收缩,因此它原来的相邻怪物会变为彼此相邻(如果其中一个死亡,另一个也会受到其法术影响)。例如,假设有 个怪物,其生命值为 ,法术强度为 。消灭怪物的一种方式如下所示:
第一行表示每个怪物的生命值,第二行表示法术的强度。最终,我们可以在 秒内消灭所有怪物。注意,这只是一个例子,并不一定是消灭怪物所需的最短时间。
请你计算消灭所有怪物所需的最短时间。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含一个整数 (),表示怪物的数量。
第二行包含 个整数 (),表示每个怪物的初始生命值。
第三行包含 个整数 (),其中 表示第 个怪物的法术强度。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数,表示消灭所有怪物所需的最短总时间。
说明/提示
在第一个测试用例中,只有一个怪物,将在 秒内被消灭。
在第二个测试用例中,最优方案是先消灭第一个怪物,再消灭最后一个怪物,最后消灭中间的怪物。总共需要 秒。
在第三个测试用例中,最优方案是先消灭第一个怪物,然后是第三个,再是第四个,最后是第二个。总共需要 秒。
由 ChatGPT 4.1 翻译
样例
4
1
10
0
3
100 1 100
1 100 1
4
2 6 7 3
3 6 0 5
2
1000000000 1000000000
1000000000 1000000000
10
203
26
3000000000
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |