AT_zone2021_f.出会いと別れ

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你打算作为一家初创公司的新产品,构建能够在所有行星之间自由往返的“跃迁门”。
共有 NN 个行星,编号为 00 到 N−1N-1。这里存在一个整数 nn,使得 N=2nN=2^n。为了能在这些行星之间高速移动,你需要建立 N−1N-1 个跃迁门,每个门可以让两颗行星之间瞬间移动,并希望通过这些门让所有行星之间都能互相到达。然而,行星之间存在“相性”,对于相性不好的行星对,无法建立跃迁门。
具体来说,相性不好的行星对由数列 A=(A1,A2,…,AM)A=(A_1,A_2,\dots,A_M) 给出。若存在某个整数 ii,使得 a xor b=Aia\ \mathrm{xor}\ b = A_i,则且仅当此时,不能在行星 aa 和行星 bb 之间建立跃迁门。
请判断是否可以构建一个让所有行星间都能互相到达的跃迁门网络。如果可以,请给出 N−1N-1 个跃迁门的建立方式。

xor\mathrm{xor} 是指整数 a,ba,b 的按位异或运算 a xor ba\ \mathrm{xor}\ b,定义如下:

  • a xor ba\ \mathrm{xor}\ b 的二进制表示中,第 2k2^k 位(k≥0k\geq 0)的数,如果 aa 和 bb 的二进制表示中该位只有一个为 11,则为 11,否则为 00。

例如,3 xor 5=63\ \mathrm{xor}\ 5 = 6(二进制表示为:011 xor 101=110011\ \mathrm{xor}\ 101 = 110)。

输入格式

输入通过标准输入按以下格式给出。

NN MM A1A_1 A2A_2 ⋯\cdots AMA_M

输出格式

如果无法构建让所有行星间都能互相到达的跃迁门网络,输出 -1。

如果可以,请输出 N−1N-1 个跃迁门的建立方式,格式如下:

U1U_1 V1V_1
U2U_2 V2V_2
⋮\vdots
UN−1U_{N-1} VN−1V_{N-1}

表示在行星 UiU_i 和行星 ViV_i 之间建立一个跃迁门。

输入输出样例

  • 输入#1

    4 1
    3

    输出#1

    1 0
    1 3
    0 2
  • 输入#2

    8 0

    输出#2

    1 0
    1 3
    1 5
    6 7
    6 4
    6 2
    3 2
  • 输入#3

    8 7
    1 2 3 4 5 6 7

    输出#3

    -1

说明/提示

故事背景

当你爬上梯子进入 UFO 时,发现被捕的穆尔和一位面目狰狞的外星人正等着你。但更引人注目的是,那堆你熟悉的罐头堆积如山。没错,那绝对是 ZONe mad_hacker ver.1.0.0。而且既然外星人也在喝 mad_hacker,那他肯定也是在其他星球上努力“MADHACKING”的工程师,我确信无疑。像在技术交流会上第一次和陌生人搭话一样,我有些紧张地开口了。
“……foo”
外星人的眼睛立刻亮了起来。
“……bar!”

“fizz!”“buzz!”
黑客们的灵魂跨越星辰交汇在一起。我们一拍即合,彻夜畅谈各自星球的语言和编程范式。被外星人看中并当场招募,我成为了首位在银河系初创公司工作的地球人。再见了,地球。谢谢你,ZONe mad_hacker。你好,宇宙!

约束条件

  • 所有输入均为整数。
  • 存在整数 nn 满足 1≤n≤181 \leq n \leq 18,且 N=2nN=2^n。
  • 0≤M≤N−10 \leq M \leq N-1。
  • 0<A1<A2<⋯<AM<N0 < A_1 < A_2 < \dots < A_M < N。

样例解释 1

由于 1 xor 0=11\ \mathrm{xor}\ 0 = 1,1 xor 3=21\ \mathrm{xor}\ 3 = 2,0 xor 2=20\ \mathrm{xor}\ 2 = 2,因此可以建立跃迁门,并且通过 N−1N-1 个跃迁门可以让所有行星间互相到达,所以这是正确答案。其他正确输出也有很多种。

由 ChatGPT 4.1 翻译

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

首页