#swap. 2026提高组模拟赛18-T1 归位
2026提高组模拟赛18-T1 归位
时间限制:1000ms 内存限制:512MB
| 项目 | 内容 |
|---|---|
| 输入文件名 | swap.in |
| 输出文件名 | swap.out |
| 可执行文件名 | swap |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
档案室有一排 个格子,格子从左到右编号为 ,第 个格子里放着一盒编号为 的档案盒。档案盒的编号互不相同,恰好是 ,只是放乱了顺序。
按档案管理规定,整排最终应当恢复为:第 个格子里放着编号 的档案盒。整理时允许的操作只有一种:选择两个相邻的格子,把这两格中的档案盒交换位置。每进行一次这样的操作,参与交换的两盒档案盒各被「动过」一次。
整个整理过程中,每个档案盒被动过的总次数不能超过 。管理员想知道两件事:如果当前限制 下能把整排整理成目标顺序,最少需要多少次操作;如果当前限制下无法完成,那么至少要把被动次数上限放宽到多少才能完成整理(即最小的可行上限 )。
输入格式
从文件 swap.in 中读入数据。
第一行两个整数 。
第二行 个整数 ,表示初始时第 个格子里的档案盒编号。
输出格式
输出到文件 swap.out 中。
输出一行一个整数:若能在限制下整理成目标顺序,输出最少操作次数;否则输出最小的可行上限 。
样例
样例 1
输入:
4 2
2 1 4 3
输出:
2
解释:交换第 格(盒 与盒 各被动 次),再交换第 格(盒 与盒 各被动 次)。两次操作后排列变为 ,四盒被动次数均为 ,不超过 。
样例 2
输入:
3 1
3 2 1
输出:
2
解释:盒 初始在第 格,目标位置是第 格,中间隔着两个格子,它至少要被移动 次,超过 ,当前限制下无法完成。把被动次数上限放宽到 后即可完成整理,因此输出 。
样例 3
输入:
6 3
3 1 2 6 5 4
输出:
5
解释:可按如下顺序操作(方括号内为操作后的排列):
- 交换第 格:,盒 、盒 各被动 次;
- 交换第 格:,盒 、盒 各被动 次;
- 交换第 格:,盒 、盒 各被动 次;
- 交换第 格:,盒 、盒 各被动 次;
- 交换第 格:,盒 、盒 各被动 次。
五次操作后排列归位。各盒被动总次数:盒 各 次,盒 各 次,均不超过 。
数据范围
对于所有测试数据,保证 ,, 是 的一个排列。
| 测试点编号 | 特殊性质 | ||
|---|---|---|---|
| 1 ~ 3 | 无 | ||
| 4 ~ 8 | |||
| 9 ~ 11 | A | ||
| 12 ~ 14 | B | ||
| 15 ~ 20 | 无 |
- 特殊性质 A:。
- 特殊性质 B:。
难度
普及+/提高-
通过率
37.5%
尝试
8
已通过
3
- ID
- 703
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者
相关
在下列比赛中: