#SLT02A. 2026年S组模拟赛10连测第2场-T1 挪车
2026年S组模拟赛10连测第2场-T1 挪车
| 项目 | 内容 |
|---|---|
| 输入文件名 | shift.in |
| 输出文件名 | shift.out |
| 可执行文件名 | shift |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
某停车场有一列沿通道排开的车位,从入口向里依次编号为 。每个车位上停着一辆车,车的编号为 ,每个编号恰好出现一次。按照场务管理规定,盘点结束时,对每个 , 号车位上必须恰好停 号车。
停车场配有一台挪车机械。机械每执行一次操作,可以选定两个距离恰好为 的车位——即编号为 与 的两个车位()——把这两个车位上的车对调。操作次数不限,同一对车位可以被操作多次,同一辆车也可以被挪动多次。
调度室拿到了当前的停车记录。请核算:要使车位达到管理规定的要求,最少需要执行多少次操作;如果无论怎么操作都无法做到,输出 。
输入格式
从文件 shift.in 中读入数据。
- 第一行两个整数 ,分别表示车位数量和机械每次操作对调的车位距离;
- 第二行 个整数 ,其中 表示当前 号车位上停的车的编号。
输出格式
输出到文件 shift.out 中。
输出一行一个整数,表示达到管理规定所需的最少操作次数;若不可能做到,输出 。
样例
6 2
3 2 5 4 1 6
2
样例 1 解释
一种操作过程是:先对调 号位与 号位上的车,各车位变为 ;再对调 号位与 号位上的车,各车位变为 ,达到要求。共 次操作。 次操作不可能完成:初始时 号位上的车都不是该位应停的车,一次操作只能对调两个车位,至多使其中两辆归位。
5 2
4 2 1 3 5
-1
样例 2 解释
号车要停到 号位。它初始在 号位,而每次被对调都只能移动到与当前车位相距恰好 的车位,永远到不了 号位。
8 3
4 8 6 1 2 3 7 5
4
样例 3 解释
按车位编号模 的余数分三组核算: 号位上停的车恰为 号车,需 次对调归位; 号位上停的车恰为 号车,需 次; 号位上停的车恰为 号车,需 次。合计 次。
数据范围
对于所有测试数据,保证:
- ;
- ;
- 是 的一个排列。
各测试点的约束如下:
| 测试点 | 特殊性质 | |
|---|---|---|
| 无 | ||
| A | ||
| 无 |
- 特殊性质 A:。
难度
未评定
通过率
—
尝试
0
通过
0
- ID
- 3773
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者