#F. 相遇与离别

    Type: Default 1000ms 256MiB

相遇与离别

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

image

相遇与离别

题目描述

你打算启用你发明的新产品,它是能够来往于全部行星之间的传送门。

NN 颗行星,编号为 00N1N-1 ,保证存在某个 nnN=2nN=2^n.

为了在这些行星直线高速移动,你打算建造 N1N-1 个可以在 22 颗行星之间移动的传送门。但是,行星之间有一个缘分,在不投缘的行星之间不能连接传送门。

具体地说,不投缘的星星数列 A={A1,A2,,AM}A=\{A_1, A_2 , \dots ,A_M\} 表示存在某个整数 iia xor b = Ai a\ \mathrm{xor}\ b\ =\ A_i 的情况下,并且仅在此时不能将行星 aa 与行星 bb 连接传送门。

判断是否可以是所有行星都用传送门联通(直接联通或间接联通),如果可以的话,输出一个使用最少传送门的连接方法。

xor\mathrm{xor}是指整数 aabb 的每个比特的异或。

  • aa xor\mathrm{xor} bb 表示为每一位二进制不同则结果为 11 ,否则为 00 。 例如说,3 xor 5 = 6 3\ \mathrm{xor}\ 5\ =\ 6 (写成二进制为: 011 xor 101 = 110 011\ \mathrm{xor}\ 101\ =\ 110 )。

输入格式

输入格式如下。第一行两个整数 N,MN,M,接下来一行 MM 个整数表示 AiA_i

N N M M A1 A_1 A2 A_2 \cdots AM A_M

输出格式

如果不存在合法的连接方法,输出一个整数 1-1

否则输出 N  1N\ -\ 1 行,每行两个整数 Ui,ViU_i,V_i 表示你连接的一个传送门。

样例 #1

样例输入 #1

4 1
3

样例输出 #1

1 0
1 3
0 2

数据范围

  • N = 2n,1 < =n < = 18 N\ =\ 2^n , 1\ <\ = n\ <\ =\ 18
  • 0 < =M < =N  1 0\ <\ = M\ <\ = N\ -\ 1
  • 0 < A1 < A2 <  < AM < N 0\ <\ A_1\ <\ A_2\ <\ \dots\ <\ A_M\ <\ N

样例解释 1

$ 1\ \mathrm{xor}\ 0\ =\ 1,\ 1\ \mathrm{xor}\ 3\ =\ 2,\ 0\ \mathrm{xor}\ 2\ =\ 2 $ ,因此是一组合法方案。

20240102集训

Not Attended
Status
Done
Rule
IOI
Problem
6
Start at
2024-1-2 19:00
End at
2024-1-2 21:00
Duration
2 hour(s)
Host
Partic.
15