#P9662. [ICPC 2021 Macao R] Cyclic Buffer
[ICPC 2021 Macao R] Cyclic Buffer
Description
有一个大小为 的循环缓冲区,读入流从第 个位置到第 个位置(两者都包含在内)。设 () 是缓冲区初始时第 个位置上的整数。此外, 形成 的一个排列。
我们将以递增顺序访问从 到 的所有整数(两者都包含在内)。只有当整数位于具有读入流的位置(即位于前 个位置)时,才能访问整数。如果某个整数无法访问,则可以将整个缓冲区向任意方向移动任意次数。
- 如果我们向左移动缓冲区一次,则位于第 个位置的整数将移动到第 个位置(如果 ),并且位于第 个位置的整数将移动到第 个位置。
- 如果我们向右移动缓冲区一次,则位于第 个位置的整数将移动到第 个位置(如果 ),并且位于第 个位置的整数将移动到第 个位置。
我们需要移动缓冲区的最小次数,以便以递增顺序访问所有整数。
Input Format
每个测试文件中包含多个测试用例。输入的第一行包含一个整数 ,表示测试用例的数量。对于每个测试用例:
第一行包含两个整数 和 (),表示缓冲区的大小和读入流的数量。
第二行包含 个整数 (),其中 表示缓冲区初始时第 个位置上的整数。
保证给定的 个整数构成 的一个排列。还保证所有测试用例中 的总和不超过 。
Output Format
对于每个测试用例,输出一行,包含一个整数,表示移动缓冲区的最小次数,以便所有整数可以以递增顺序访问。
【样例解释】
对于第一个样例测试用例:
- 向右移动一次,使缓冲区变为 。现在 和 可以按顺序访问,因为它们位于前 个位置。
- 向左移动两次,使缓冲区变为 。现在 、 和 可以按顺序访问,因为它们位于前 个位置。
翻译来自于:ChatGPT
2
5 3
2 4 3 5 1
1 1
1
3
0
京公网安备 11011102002149号