欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1566D1.Seating Arrangements (easy version)
Seating Arrangements (easy version)
题目描述
这是该问题的简单版本。唯一的区别是本版本中 。
在电影院中,座位可以表示为一个有 行 列的表格。行号从 到 。每一行的座位从左到右依次编号:第 行的座位编号为 到 ,对于所有 的行。
$$\begin{aligned} &1 \\ &2 \quad \cdots \quad m-1 \quad m \quad m+1 \\ &m+2 \quad \cdots \quad 2m-1 \quad 2m \quad 2m+1 \\ &2m+2 \quad \cdots \quad 3m-1 \quad 3m \quad \vdots \\ &\vdots \quad \ddots \quad \vdots \quad \vdots \quad m(n-1)+1 \\ &m(n-1)+2 \quad \cdots \quad nm-1 \quad nm \end{aligned}$$上表为座位编号表。
有 个人想去电影院观看新电影。他们编号为 到 。你需要为每个人分配一个且仅一个座位。
已知在这个电影院中,座位编号越小,观影效果越好。第 个人的视力等级为 。设 为分配给第 个人的座位编号。你希望视力等级较低的人能获得更好的座位,因此对于任意两个人 和 ,如果 ,则应满足 。
当所有人分配好座位后,他们会依次入场并就座。按照 到 的顺序,每个人进入影厅并坐到自己的座位。为了到达自己的座位,这个人会走到所在行,并从该行的第一个座位向右依次走到自己的座位。在行进过程中,有些座位是空的,有些已经被其他人占据。这个人的“不便度”定义为他经过的已被占据的座位数。
举个例子:,某人被分配到第一行的第 号座位,第一行的 、、 号座位已经被占据, 和 号座位是空的。这个人的不便度为 ,因为他经过了已被占据的 和 号座位。
请你计算,在满足所有条件的情况下,分配座位使得总不便度最小是多少。
输入格式
输入包含多组测试用例。第一行包含一个整数 (),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 和 (,),分别表示行数和每行的座位数。
每个测试用例的第二行包含 个整数 (),其中 表示第 个人的视力等级。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数,表示可以获得的最小总不便度。
说明/提示
在第一个测试用例中,只有一种分配方式,因为所有视力等级都不同。第一个人坐在第一个座位,第二个人坐在第二个座位,第三个人坐在第三个座位。因此,第一个人的不便度为 ,第二个人为 ,第三个人为 。总不便度为 。
在第二个测试用例中,分配应为:,,,,。总不便度为 。
由 ChatGPT 4.1 翻译
样例
4
1 3
1 2 3
1 5
2 1 5 3 3
1 2
2 1
1 6
2 3 2 1 1 1
3
6
0
1
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |