CF1396E.Distance Matching
NOI/NOI+/CTSC
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an integer k and a tree T with n nodes (n is even).
Let dist(u,v) be the number of edges on the shortest path from node u to node v in T.
Let us define a undirected weighted complete graph G=(V,E) as following:
- V=x∣1≤x≤n i.e. the set of integers from 1 to n
- E=(u,v,w)∣1≤u,v≤n,u=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 T
Your task is simple, find a perfect matching in G with total edge weight k (1≤k≤n2).
给你一个整数 k 和一棵包含 n 个节点的树 T(n 为偶数)。
令 dist(u,v) 表示树 T 中从节点 u 到节点 v 的最短路径上的边数。
我们按如下方式定义一个无向带权完全图 G=(V,E):
- V={x∣1≤x≤n},即从 1 到 n 的所有整数构成的集合;
- E={(u,v,w)∣1≤u,v≤n,u=v,w=dist(u,v)},即对任意两个不同的节点 u 和 v,均存在一条连接它们的边,其权重为它们在 T 中的距离 dist(u,v)。
你的任务很简单:在 G 中找出一个总边权恰好为 k(其中 1≤k≤n2)的完美匹配。
输入格式
The first line of input contains two integers n, k (2≤n≤100000, n is even, 1≤k≤n2): number of nodes and the total edge weight of the perfect matching you need to find.
The i-th of the following n−1 lines contains two integers vi, ui (1≤vi,ui≤n) denoting an edge between vi and ui in T. It is guaranteed that the given graph is a tree.
输入的第一行包含两个整数 n 和 k(2≤n≤100000,n 为偶数,1≤k≤n2):分别为节点数,以及你需要找到的完美匹配的总边权。
接下来的 n−1 行中,第 i 行包含两个整数 vi、ui(1≤vi,ui≤n),表示树 T 中节点 vi 与 ui 之间的一条边。保证所给图是一棵树。
输出格式
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 2n lines, the i-th line containing pi,qi (1≤pi,qi≤n): the i-th pair of the matching.
如果不存在满足上述条件的匹配,则在单独一行输出 “NO”(不带引号)。
否则,应在输出的第一行输出 “YES”(不带引号)。
然后,应输出 2n 行,其中第 i 行包含 pi,qi(1≤pi,qi≤n):匹配中的第 i 对。
输入输出样例
输入#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测评打分。不知道怎么写?