CF1521D.Nastia Plays with a Tree

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Nastia has an unweighted tree with nn vertices and wants to play with it!

The girl will perform the following operation with her tree, as long as she needs:

  1. Remove any existing edge.
  2. Add an edge between any pair of vertices.

What is the minimum number of operations Nastia needs to get a bamboo from a tree? A bamboo is a tree in which no node has a degree greater than 22 .

输入格式

The first line contains a single integer tt ( 1t100001 \le t \le 10\,000 ) — the number of test cases.

The first line of each test case contains a single integer nn ( 2n1052 \le n \le 10^5 ) — the number of vertices in the tree.

Next n1n - 1 lines of each test cases describe the edges of the tree in form aia_i , bib_i ( 1ai,bin1 \le a_i, b_i \le n , aibia_i \neq b_i ).

It's guaranteed the given graph is a tree and the sum of nn in one test doesn't exceed 21052 \cdot 10^5 .

输出格式

For each test case in the first line print a single integer kk — the minimum number of operations required to obtain a bamboo from the initial tree.

In the next kk lines print 44 integers x1x_1 , y1y_1 , x2x_2 , y2y_2 ( 1x1,y1,x2,y2n1 \le x_1, y_1, x_2, y_{2} \le n , x1y1x_1 \neq y_1 , x2y2x_2 \neq y_2 ) — this way you remove the edge (x1,y1)(x_1, y_1) and add an undirected edge (x2,y2)(x_2, y_2) .

Note that the edge (x1,y1)(x_1, y_1) must be present in the graph at the moment of removing.

输入输出样例

  • 输入#1

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

    输出#1

    2
    2 5 6 7
    3 6 4 5
    0

说明/提示

Note the graph can be unconnected after a certain operation.

Consider the first test case of the example:

The red edges are removed, and the green ones are added.

首页