欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF920A.Water The Garden
Water The Garden
题目描述
现在是冬天,Max 决定要给花园浇水。
这个花园可以看作是 个连续的花坛,编号从 到 。有 个花坛里安装了水龙头(第 个水龙头在第 个花坛),如果龙头打开,就会向相邻的花坛输送水。如果第 个花坛上的水龙头被打开,则在经过 秒后,第 个花坛会被浇水;经过 秒后,区间 上的花坛都会被浇水(如果这些位置存在);经过 秒后( 是整数),区间 上的花坛都会被浇水(如果这些位置存在)。在每一秒的过程中没有变化,因此比如我们不能说在 秒后区间 会被浇水;只有在 秒正好过去时,区间 才刚好被浇水。
测试样例 的花园。白色代表没有水龙头的花坛,红色代表有水龙头的花坛。
打开水龙头后经过 秒的花园。白色代表未被浇水的花坛,蓝色代表已被浇水的花坛。
Max 想要在同一时刻打开所有水龙头,他想知道,从打开龙头开始,至少需要多少秒,才能让整个花园都被浇到水。请帮他计算出答案!
输入格式
第一行包含一个整数 ,表示测试用例的数量()。
接下来 组测试用例。每组测试用例的第一行包含两个整数 与 (,),分别表示花坛总数和水龙头的数量。
下一行包含 个整数 (),表示第 个水龙头所在的花坛位置。保证对于每个 有 。
保证所有测试用例中 的总和不超过 。
注意,在 hack 时需要设置 。
输出格式
对于每组测试用例,输出一个整数,表示 Max 打开水龙头后,最少需要多少秒,才能让整个花园被浇到水。
说明/提示
第一个样例有三个测试用例:
- 有 个花坛,第 个花坛有一个水龙头。如果我们打开它, 秒后只有第 个花坛被浇水; 秒后区间 的花坛被浇水, 秒后所有花坛都被浇水。
- 有 个花坛,每个花坛上都有一个水龙头。如果同时打开所有水龙头,则 秒后所有花坛都被浇水。
- 有 个花坛,只有第 个花坛有一个水龙头。要让第 个花坛被浇水,需要 秒。
由 ChatGPT 5 翻译
样例
3
5 1
3
3 3
1 2 3
4 1
1
3
1
4
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |