AT_arc152_d.[ARC152D] Halftree

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

有一个包含 NN 个顶点的无向图,顶点编号为 00 到 N−1N-1,初始时没有任何边。你可以任意添加边到这个图中。然后,在你添加完所有边后,使用给定的 KK,执行如下操作恰好一次:

  • 对于你添加的每一条边,设其两端顶点为 u,vu, v,则在顶点 (u+K) mod N(u+K)\bmod N 和 (v+K) mod N(v+K)\bmod N 之间也添加一条边。即使这两个顶点之间已经有边,也会再添加一条,因此可能会出现重边。

对于给定的 N,KN, K,请你构造一组你需要添加的边,使得经过上述操作后,最终的图是一个树。如果不存在这样的边集,请指出。

输入格式

输入从标准输入读入,格式如下:

NN KK

输出格式

如果存在满足条件的边集,输出边的数量 MM,以及每条边连接的两个顶点 ai,bia_i, b_i,格式如下。要求 0≤M≤N0\leq M\leq N,所有输出均为整数。边和顶点的顺序不限。

MM a1a_1 b1b_1 a2a_2 b2b_2 ⋯\cdots aMa_M bMb_M

如果不存在满足条件的边集,输出 -1。

输入输出样例

  • 输入#1

    5 2

    输出#1

    2
    2 3
    2 4
  • 输入#2

    2 1

    输出#2

    -1
  • 输入#3

    7 1

    输出#3

    3
    0 1
    2 3
    4 5

说明/提示

限制

  • 2≤N≤2×1052\leq N\leq 2\times 10^5
  • 1≤K≤N−11\leq K\leq N-1
  • 输入的所有值均为整数

样例解释 1

执行操作后,会添加边 44-00 和 44-11。因此,最终生成了一棵树,这是一种合法的输出。

样例解释 2

不存在一种方法使得操作后的图为树。

由 ChatGPT 4.1 翻译

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

首页