CF1935F.Andrey's Tree

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Master Andrey loves trees ^{\dagger} very much, so he has a tree consisting of nn vertices.

But it's not that simple. Master Timofey decided to steal one vertex from the tree. If Timofey stole vertex vv from the tree, then vertex vv and all edges with one end at vertex vv are removed from the tree, while the numbers of other vertices remain unchanged. To prevent Andrey from getting upset, Timofey decided to make the resulting graph a tree again. To do this, he can add edges between any vertices aa and bb , but when adding such an edge, he must pay ab|a - b| coins to the Master's Assistance Center.

Note that the resulting tree does not contain vertex vv .

Timofey has not yet decided which vertex vv he will remove from the tree, so he wants to know for each vertex 1vn1 \leq v \leq n , the minimum number of coins needed to be spent to make the graph a tree again after removing vertex vv , as well as which edges need to be added.

^{\dagger} A tree is an undirected connected graph without cycles.

输入格式

Each test consists of multiple test cases. The first line contains a single integer tt ( 1t1041 \le t \le 10^4 ) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer nn ( 5n21055 \le n \le 2\cdot10^5 ) — the number of vertices in Andrey's tree.

The next n1n - 1 lines contain a description of the tree's edges. The ii -th of these lines contains two integers uiu_i and viv_i ( 1ui,vin1 \le u_i, v_i \le n ) — the numbers of vertices connected by the ii -th edge.

It is guaranteed that the given edges form a tree.

It is guaranteed that the sum of nn over all test cases does not exceed 21052\cdot10^5 .

输出格式

For each test case, output the answer in the following format:

For each vertex vv (in the order from 11 to nn ), in the first line output two integers ww and mm — the minimum number of coins that need to be spent to make the graph a tree again after removing vertex vv , and the number of added edges.

Then output mm lines, each containing two integers aa and bb ( 1a,bn,av,bv1 \le a, b \le n, a \ne v, b \ne v , aba \ne b ) — the ends of the added edge.

If there are multiple ways to add edges, you can output any solution with the minimum cost.

输入输出样例

  • 输入#1

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

    输出#1

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

说明/提示

In the first test case:

Consider the removal of vertex 44 :

The optimal solution would be to add an edge from vertex 55 to vertex 33 . Then we will spend 53=2|5 - 3| = 2 coins.

In the third test case:

Consider the removal of vertex 11 :

The optimal solution would be:

  • Add an edge from vertex 22 to vertex 33 , spending 23=1|2 - 3| = 1 coin.
  • Add an edge from vertex 33 to vertex 44 , spending 34=1|3 - 4| = 1 coin.
  • Add an edge from vertex 44 to vertex 55 , spending 45=1|4 - 5| = 1 coin.

Then we will spend a total of 1+1+1=31 + 1 + 1 = 3 coins.

Consider the removal of vertex 22 :

No edges need to be added, as the graph will remain a tree after removing the vertex.

首页