AT_agc025_e.[AGC025E] Walking on a Tree

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

高桥君非常喜欢在树上散步。高桥君散步的树由 NN 个顶点组成,每个顶点被编号为 11 到 NN。此外,N−1N-1 条边中的第 ii 条边连接顶点 aia_i 和顶点 bib_i。

高桥君计划进行 MM 次散步。第 ii 次散步将按以下方式进行:

  • 确定两个顶点 uiu_i 和 viv_i。
  • 高桥君将从顶点 uiu_i 移动到顶点 viv_i,或者从顶点 viv_i 移动到顶点 uiu_i,且同一条边不会被重复经过。

此外,第 ii 次散步的乐趣定义如下:

  • 在第 ii 次散步中经过的边中,满足以下任一条件的边的数量:
    • 本次散步中首次经过的边;
    • 之前曾经经过但仅以相反方向经过的边。

高桥君希望通过为每次散步选择方向,使得 MM 次散步的总乐趣最大化。因此,请计算高桥君能够获得的最大总乐趣,并给出一个实际使总乐趣最大的散步方向设定示例。

输入格式

输入通过标准输入给出,格式如下:

NN MM
a1a_1 b1b_1
⋮\vdots
aN−1a_{N-1} bN−1b_{N-1}
u1u_1 v1v_1
⋮\vdots
uMu_M vMv_M

输出格式

输出高桥君能够获得的最大总乐趣 TT,以及一个实际使总乐趣最大的散步方向设定示例,格式如下:

TT
u1′u'_1 v1′v'_1
⋮\vdots
uM′u'_M vM′v'_M

其中,(ui′,vi′)(u'_i, v'_i) 为 (ui,vi)(u_i, v_i) 或 (vi,ui)(v_i, u_i),表示第 ii 次散步将从 ui′u'_i 移动到 vi′v'_i。

输入输出样例

  • 输入#1

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

    输出#1

    6
    2 3
    3 4
    4 2
  • 输入#2

    5 3
    1 2
    1 3
    3 4
    3 5
    2 4
    3 5
    1 5

    输出#2

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

    6 4
    1 2
    2 3
    1 4
    4 5
    4 6
    2 4
    3 6
    5 6
    4 5

    输出#3

    9
    2 4
    6 3
    5 6
    4 5

说明/提示

约束条件

  • 1≤N,M≤20001 \leq N, M \leq 2000
  • 1≤ai,bi≤N1 \leq a_i, b_i \leq N
  • 1≤ui,vi≤N1 \leq u_i, v_i \leq N
  • ai≠bia_i \neq b_i
  • ui≠viu_i \neq v_i
  • 输入给出的图是一棵树。

样例解释 #1

按照上述方式设定散步方向后,每次散步可以获得 22 点乐趣,总乐趣为 66。

翻译由 DeepSeek V3 完成

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

首页