CF1521D.Nastia Plays with a Tree

省选/NOI-

通过率:0%

时间限制:3.00s

内存限制:256MB

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.

娜斯佳有一棵包含 nn 个顶点的无权树,她想和这棵树玩!

女孩将对她的树反复执行以下操作,直到她满意为止:

  1. 删除任意一条已存在的边;
  2. 在任意一对顶点之间添加一条边。

娜斯佳至少需要多少次操作,才能将这棵树变成一根“竹子”?所谓“竹子”,是指一棵树,其中任意节点的度数均不超过 22。

输入格式

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

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

Next n−1n - 1 lines of each test cases describe the edges of the tree in form aia_i, bib_i (1≤ai,bi≤n1 \le a_i, b_i \le n, ai≠bia_i \neq b_i).

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

第一行包含一个整数 tt(1≤t≤10 0001 \le t \le 10\,000)—— 测试用例的数量。

每个测试用例的第一行包含一个整数 nn(2≤n≤1052 \le n \le 10^5)—— 树中顶点的数量。

每个测试用例的接下来 n−1n - 1 行以 aia_i、bib_i 的形式描述树的边(1≤ai,bi≤n1 \le a_i, b_i \le n,且 ai≠bia_i \neq b_i)。

保证所给图是一棵树,且单个测试用例中所有 nn 的总和不超过 2⋅1052 \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 (1≤x1,y1,x2,y2≤n1 \le x_1, y_1, x_2, y_{2} \le n, x1≠y1x_1 \neq y_1, x2≠y2x_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.

对于每个测试用例,在第一行输出一个整数 kk —— 从初始树得到竹子结构所需的最少操作次数。

接下来的 kk 行中,每行输出四个整数 x1x_1、y1y_1、x2x_2、y2y_2(满足 1≤x1,y1,x2,y2≤n1 \le x_1, y_1, x_2, y_{2} \le n,且 x1≠y1x_1 \neq y_1,x2≠y2x_2 \neq y_2),表示删除无向边 (x1,y1)(x_1, y_1) 并添加一条无向边 (x2,y2)(x_2, y_2)。

注意:在执行删除操作时,边 (x1,y1)(x_1, y_1) 必须存在于当前图中。

输入输出样例

  • 输入#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.

注意:经过某次操作后,图可能变为非连通图。

考虑示例中的第一个测试用例:

红色边被删除,绿色边被添加。

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

首页