题解:CF2118B 制作排列矩阵
洛谷CF2188B || CodeForces 2188 B
简要题意
给出一个
思路
考虑这么一种构造方法:
以
分析样例可知,我们只需要对每一行的
在此基础上,我们发现当
- 若
i=1 ,只执行1~2~n ; - 若
2\le i<n ,执行i~1~i 和i~i+1~n ; - 若
i=n ,只执行n~1~n 。
#include <bits/stdc++.h>
using namespace std;
int t, x;
int main()
{
scanf("%d", &t);
while (t--)
{
scanf("%d", &x);
printf("%d\n", 2*x-2);
printf("%d %d %d\n", 1, 2, x);
for (int i = 2; i < x; i++)
{
printf("%d %d %d\n%d %d %d\n", i, 1, i, i, i+1, x);
}
printf("%d %d %d\n", x, 1, x);
}
}