欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1847A.The Man who became a God
The Man who became a God
题目描述
Kars 厌倦并且对村庄里人们的狭隘思想感到不满,因为他们满足于现状,并不试图成为完美的生命体。作为一名顶尖的发明家,Kars 希望增强自己的身体,成为完美的生命体。不幸的是,村庄里的 个村民开始对他的想法产生怀疑。第 个村民对他有 的怀疑度。每个村民单独面对 Kars 时都很害怕,于是他们会组成小组来增强力量。
从第 个村民到第 个村民组成的小组的力量定义为 ,其中
$$f(l,r) = |a_l - a_{l+1}| + |a_{l + 1} - a_{l + 2}| + \ldots + |a_{r-1} - a_r|$$这里 表示 的绝对值。只有一个村民的小组力量为 。
Kars 想要将村民恰好分成 个连续的小组,使得所有小组力量之和最小。形式化地,他需要找到 个正整数 ,使得 $f(1, r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)$ 的值最小。请帮助 Kars 求出 $f(1, r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)$ 的最小值。
输入格式
第一行包含一个整数 ,表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 ,分别表示村民的数量和需要分成的小组数。
每个测试用例的第二行包含 个整数 ,表示每个村民的怀疑度。
输出格式
对于每个测试用例,输出一个整数,表示所有小组力量之和的最小可能值,即 $f(1,r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)$ 的最小值。
说明/提示
在第一个测试用例中,我们将怀疑度为 的村民分为 和 两组。于是 $f(1,3) + f(4,4) = (|1 - 3| + |3 - 5|) + 0 = 4 + 0 = 4$。
在第二个测试用例中,我们将怀疑度为 的村民分为 三组。于是 。
由 ChatGPT 4.1 翻译
样例
3
4 2
1 3 5 2
6 3
1 9 12 4 7 2
12 8
1 9 8 2 3 3 1 8 7 7 9 2
4
11
2
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |