欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1946B.Maximum Sum
Maximum Sum
题目描述
给定一个长度为 的整数数组 。
你需要对其进行恰好 次操作。每次操作,你可以选择数组 的任意一个连续子数组(可以为空),并将该子数组的和插入到数组的任意位置。
你的任务是求出经过 次这样的操作后,数组的最大可能和。
由于答案可能非常大,请输出答案对 取模后的结果。
提示:一个数 模 的余数是最小的非负整数 ,使得存在整数 满足 。
输入格式
每组测试数据包含若干组测试用例。第一行包含一个整数 (),表示测试用例的数量。接下来是每组测试用例的描述。
每组测试用例的第一行包含两个整数 和 (),分别表示数组 的长度和操作次数。
第二行包含 个整数 (),表示数组 。
保证所有测试用例中 和 的总和不超过 。
输出格式
对于每组测试用例,输出一个整数,表示经过 次操作后数组可能获得的最大和,对 取模。
说明/提示
在第一个测试用例中,最优做法是两次选择空子数组并插入其和(零),最终数组的和为 ,模 后为 。
在第二个测试用例中,最优做法是三次选择整个数组的和并插入,操作过程如下:[ 2, 2, 8 \rightarrow 2, 2, 8, 12 \rightarrow 2, 2, 8, 12, 24 \rightarrow 2, 2, 8, 12, 24, 48 ],最终数组的和为 。
在第四个测试用例中,最优做法是选择前 个数组成的子数组(即 ),将其和插入到数组开头,得到新数组 [ 10, 4, -2, 8, -12, 9 ],其和为 。
在第七个测试用例中,最优做法始终是选择空子数组。此时最终数组的和与原数组相同。答案为原数组的和对 取模,因为 。
由 ChatGPT 4.1 翻译
样例
12
2 2
-4 -7
3 3
2 2 8
1 7
7
5 1
4 -2 8 -12 9
7 4
8 14 -9 6 0 -1 3
7 100
5 3 -8 12 -5 -9 3
6 1000
-1000000000 -1000000000 -1000000000 -1000000000 -1000000000 -1000000000
2 1
1000000000 8
5 4
0 0 0 0 0
6 10
48973 757292 58277 -38574 27475 999984
7 1
-1000 1000 -1000 1000 -1000 1000 -1000
10 10050
408293874 -3498597 7374783 295774930 -48574034 26623784 498754833 -294875830 283045804 85938045
999999996
96
896
17
351
716455332
42
2
0
897909241
0
416571966
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |