#P1356. 黑板数列(board)

黑板数列(board)

黑板上有一列实数,对于 每一次 操作,可以选择两个实数,把它们分别乘上对方的值。

例如,给定 7, 4, 97,\ 4,\ 9,对 7799 进行一次操作,原数列变为 63, 4, 6363,\ 4,\ 63

给定数列的长度 nn,你的目标是找到一种操作方案,使得对于任意长度为 nn 的实数列,按照该操作方式操作之后,数列的每一项数值都相同。

输入格式

本题有多组测试数据。

第一行输入数据组数 TT

对于每组数据有一行,包含一个正整数 nn,表示数列长度。

输出格式

对于每组数据,先输出一个整数表示能否找到。若能输出 11,否则输出 00

若能找到,还需要输出一行 mm 表示操作次数(你需要保证 0<m5×1050 < m\leq 5\times 10^5),接下来 mm 行,每行包含两个整数,表示操作的两项在数列中的编号。

3
2
3
4
1
1
1 2
0
1
4
1 2
3 4
1 3
2 4

数据范围与评分方式

本题仅提供一个满足 T=20T=20 的测试点。

对于第 2k12k-12k2k 组数据,保证 2k1<n2k2^{k-1} < n\leq 2^k。即保证 2n10242\leq n\leq 1024

对于每组数据分别评分,每组数据满分 55 分。

若存在合法方案,则判断正确得 22 分,构造也正确得 55 分;若不存在,判断正确得 55 分,否则不得分。

提示:若能够完成正确性判断,但是无法构造的,请输出一个 m=0m=0 的构造。类似地,输出时请判定 0<m5×1050 < m\leq 5\times 10^5 是否成立,若评分时 m>5×105m > 5\times 10^5,则你无法得到任何分数。