AT_abc268_e.[ABC268E] Chinese Restaurant (Three-Star Version)
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在转盘桌的周围,按照逆时针方向等间隔地排列着人 0、人 1、…、人 N−1。此外,在人 i 的正前方放着菜品 pi。
你可以进行如下操作任意多次(包括 0 次):
- 将转盘桌逆时针旋转 N1 圈。这样一来,(在这次操作之前)人 i 正前方的菜品会移动到人 (i+1)modN 的正前方。
在操作完成后,对于每个人 i,其不满度定义为:使得菜品 i 被放在了人 (i−k)modN 或 (i+k)modN 的正前方的最小非负整数 k。
请你求出 N 个人的不满度总和的最小值。
amodm 表示对于整数 a 和正整数 m,amodm 是满足 a−x 为 m 的倍数的 0 以上小于 m 的整数 x。(可以证明,这样的 x 是唯一确定的。)
输入格式
输入以以下格式从标准输入读入。
N p0 p1 … pN−1
输出格式
请输出答案。
输入输出样例
输入#1
4 1 2 0 3
输出#1
2
输入#2
3 0 1 2
输出#2
0
输入#3
10 3 9 6 1 7 2 8 0 5 4
输出#3
20
说明/提示
限制条件
- 3≤N≤2×105
- 0≤pi≤N−1
- 若 i=j,则 pi=pj
- 输入均为整数
样例解释 1
若进行 1 次操作,情况如下图所示。

此时,不满度总和为 2,具体如下:
- 人 0 的不满度为 1,因为菜品 0 被放在了人 3 (=(0−1)mod4) 的正前方。
- 人 1 的不满度为 0,因为菜品 1 被放在了人 1 (=(1+0)mod4) 的正前方。
- 人 2 的不满度为 0,因为菜品 2 被放在了人 2 (=(2+0)mod4) 的正前方。
- 人 3 的不满度为 1,因为菜品 3 被放在了人 0 (=(3+1)mod4) 的正前方。
无法使不满度总和小于 2,因此答案为 2。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?