CF1396E.Distance Matching

NOI/NOI+/CTSC

通过率:0%

时间限制:2.00s

内存限制:512MB

AC君温馨提醒

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

题目描述

You are given an integer kk and a tree TT with nn nodes (nn is even).

Let dist(u,v)dist(u, v) be the number of edges on the shortest path from node uu to node vv in TT.

Let us define a undirected weighted complete graph G=(V,E)G = (V, E) as following:

  • V=x∣1≤x≤nV = {x \mid 1 \le x \le n } i.e. the set of integers from 11 to nn
  • E=(u,v,w)∣1≤u,v≤n,u≠v,w=dist(u,v)E = {(u, v, w) \mid 1 \le u, v \le n, u \neq v, w = dist(u, v) } i.e. there is an edge between every pair of distinct nodes, the weight being the distance between their respective nodes in TT

Your task is simple, find a perfect matching in GG with total edge weight kk (1≤k≤n2)(1 \le k \le n^2).

给你一个整数 kk 和一棵包含 nn 个节点的树 TT(nn 为偶数)。

令 dist(u,v)dist(u, v) 表示树 TT 中从节点 uu 到节点 vv 的最短路径上的边数。

我们按如下方式定义一个无向带权完全图 G=(V,E)G = (V, E):

  • V={x∣1≤x≤n}V = \{x \mid 1 \le x \le n\},即从 11 到 nn 的所有整数构成的集合;
  • E={(u,v,w)∣1≤u,v≤n, u≠v, w=dist(u,v)}E = \{(u, v, w) \mid 1 \le u, v \le n,\, u \neq v,\, w = dist(u, v)\},即对任意两个不同的节点 uu 和 vv,均存在一条连接它们的边,其权重为它们在 TT 中的距离 dist(u,v)dist(u, v)。

你的任务很简单:在 GG 中找出一个总边权恰好为 kk(其中 1≤k≤n21 \le k \le n^2)的完美匹配。

输入格式

The first line of input contains two integers nn, kk (2≤n≤100 0002 \le n \le 100\,000, nn is even, 1≤k≤n21 \le k \le n^2): number of nodes and the total edge weight of the perfect matching you need to find.

The ii-th of the following n−1n - 1 lines contains two integers viv_i, uiu_i (1≤vi,ui≤n1 \le v_i, u_i \le n) denoting an edge between viv_i and uiu_i in TT. It is guaranteed that the given graph is a tree.

输入的第一行包含两个整数 nn 和 kk(2≤n≤100 0002 \le n \le 100\,000,nn 为偶数,1≤k≤n21 \le k \le n^2):分别为节点数,以及你需要找到的完美匹配的总边权。

接下来的 n−1n - 1 行中,第 ii 行包含两个整数 viv_i、uiu_i(1≤vi,ui≤n1 \le v_i, u_i \le n),表示树 TT 中节点 viv_i 与 uiu_i 之间的一条边。保证所给图是一棵树。

输出格式

If there are no matchings that satisfy the above condition, output "NO" (without quotes) on a single line.

Otherwise, you should output "YES" (without quotes) on the first line of output.

You should then output n2\frac{n}{2} lines, the ii-th line containing pi,qip_i, q_i (1≤pi,qi≤n1 \le p_i, q_i \le n): the ii-th pair of the matching.

如果不存在满足上述条件的匹配,则在单独一行输出 “NO”(不带引号)。

否则,应在输出的第一行输出 “YES”(不带引号)。

然后,应输出 n2\frac{n}{2} 行,其中第 ii 行包含 pi,qip_i, q_i(1≤pi,qi≤n1 \le p_i, q_i \le n):匹配中的第 ii 对。

输入输出样例

  • 输入#1

    4 2
    1 2
    2 3
    3 4

    输出#1

    YES
    2 1
    3 4
  • 输入#2

    4 4
    1 2
    2 3
    3 4

    输出#2

    YES
    3 1
    2 4

说明/提示

A tree is a connected acyclic undirected graph.

A matching is set of pairwise non-adjacent edges, none of which are loops; that is, no two edges share a common vertex.

A perfect matching is a matching which matches all vertices of the graph; that is, every vertex of the graph is incident to exactly one edge of the matching.

树是一个连通的无环无向图。

匹配是一组两两不相邻的边(不含自环),即任意两条边不共享公共顶点。

完美匹配是一种匹配,它覆盖图中的所有顶点;即图中的每个顶点恰好与匹配中的一条边关联。

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

首页