P8910 [RC-06] Operation Sequence

题目描述

给出 $n$,以及一个长度为 $n+1$ 的数组 $[a_1,a_2,\dots,a_{n+1}]$,初始时 $a_i=i\ (1\le i\le n)$,$a_{n+1}=0$。 你只能进行以下一种操作,通过输出特定字符串完成操作: - 输出 `i j` :其中 $i,j$ 为正整数,要求 $1\le i,j\le n+1$,表示把 $a_i$ 赋值为 $a_j$。 请把 $a$ 数组**的前 $n$ 位**向**右**循环移位 $K$ 位;即,在执行完毕你输出的所有操作后,要求 $a$ 数组第 $i\ (1\le i\le K)$ 位等于 $n-K+i$;第 $i\ (K+1\le i\le n)$ 位等于 $i-K$,第 $n+1$ 位任意。你只能进行至多 $T=\lfloor1.5n\rfloor$ 次赋值操作。 如果你进行的操作数多于 $T$ 也可以获得部分分,具体地,设你的操作次数为 $S$: - 如果 $S\le T$,得 $100$ 分。 - 如果 $T4T$,得 $0$ 分。 你在本题的得分是所有测试点中所有数据里得分的最小值。

输入格式

本题单个测试点内有多组数据。 第一行是数据组数 $T$。 对于每组数据: 第一行两个正整数 $n,K$。

输出格式

对于每组数据: 在第一行输出操作数 $k\ (0\le k\le 4T)$。**请注意,不需要最小化 $k$。** 接下来 $k$ 行,每行输出两个正整数 $i,j$,表示一次操作。$(1\le i,j\le n+1)$

说明/提示

所有数据均满足:$1\le T\le 10^4$,$1\le n\le 10^5$,$0\le K\le n-1$。保证同一个测试点中所有 $n$ 的和不超过 $5\times 10^5$。