CF2118B.Make It Permutation
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个大小为 $ n \times n $ 的矩阵 $ A $,其中对于所有 $ 1 \le i,j \le n , A_{i,j} = j $。
在一次操作中,你可以选择一行,并反转该行中的任意子数组∗。
请找到最多 $ 2n $ 次操作的序列,使得每一列都包含一个长度为 $ n $ 的排列†。
可以证明这样的构造总是可能的。如果有多个解,输出任意一个即可。
∗ 数组 $ a $ 是数组 $ b $ 的子数组,如果 $ a $ 可以通过从 $ b $ 的开头删除零个或多个元素,以及从 $ b $ 的末尾删除零个或多个元素得到。
† 长度为 $ n $ 的排列是一个由 $ 1 $ 到 $ n $ 的 $ n $ 个不同整数按任意顺序组成的数组。例如,$ [2,3,1,5,4] $ 是一个排列,但 $ [1,2,2] $ 不是排列($ 2 $ 出现了两次),$ [1,3,4] $ 也不是排列($ n=3 $ 但出现了 $ 4 $)。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $ t ( 1 \le t \le 100 $)。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $ n ( 3 \le n \le 5000 $),表示矩阵的行数和列数。
保证所有测试用例的 $ n $ 之和不超过 $ 5000 $。
输出格式
对于每个测试用例,第一行输出一个整数 $ k ( 0 \le k \le 2n $),表示你希望执行的操作次数。接下来的行中,输出这些操作。
每个操作的输出格式为“$ i;l;r ”( 1 \leq l \leq r \leq n $ 且 $ 1 \leq i \leq n $),表示反转第 $ i $ 行的子数组 $ A_{i, l} $, $ A_{i, l+1} $, ..., $ A_{i, r} $。
输入输出样例
输入#1
2 3 4
输出#1
4 2 1 3 2 2 3 3 1 2 3 2 3 5 2 1 4 3 1 3 3 2 4 4 3 4 4 1 2
说明/提示
在第一个测试用例中,以下操作是一个有效的解:

输入解题思路,AI测评打分。不知道怎么写?