CF2133E.I Yearned For The Mines

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

小时候,Steve 渴望进入矿井!他的矿井可以表示为一棵有 nn 个节点的树∗^{\ast}。

不幸的是,Steve 的最大死敌 Herobrine 潜入了他的矿井!任何时刻,Herobrine 都正好藏在一个节点里;最初,他可能在任意一个节点。Steve 可以执行以下操作:

  • 1  x1\,\,x —— 检查 Herobrine 当前是否在节点 xx。如果在,Steve 就抓住了他。否则,Herobrine 可以选择是否移动到任意一个相邻节点(除了你刚刚检查过的那个)。
  • 2  x2\,\,x —— 摧毁所有与节点 xx 相连的边;Herobrine 之后将无法再通过这些边移动。随后,Herobrine 可以选择是否移动到任意一个相邻节点。

请你找出一组不超过 ⌊54⋅n⌋\left\lfloor \frac{5}{4} \cdot n \right\rfloor 次操作的方案,使得无论 Herobrine 最初藏在哪里、如何移动,Steve 都一定能抓住他。我们已经证明,在给定约束下总是存在这样的方案。

∗^{\ast}树是一个无环连通图。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试数据组数。

每组测试数据的第一行包含一个整数 nn(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5),表示节点数。

接下来的 n−1n-1 行,每行包含两个整数 uu 和 vv(1≤u,v≤n1 \le u, v \le n),表示节点 uu 和 vv 之间有一条边。

保证给定的边构成一棵树。

保证所有测试数据中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每组测试数据,首先输出一个整数 kk(1≤k≤⌊54⋅n⌋1 \le k \le \left\lfloor \frac{5}{4} \cdot n \right\rfloor),表示你要执行的操作数。

接下来输出 kk 行。第 ii 行(1≤i≤k1 \le i \le k)包含两个整数 tit_i 和 xix_i(1≤ti≤21 \le t_i \le 2,1≤xi≤n1 \le x_i \le n),表示第 ii 次操作是在节点 xix_i 上执行操作 tit_i。

输入输出样例

  • 输入#1

    2
    2
    1 2
    4
    1 2
    2 3
    4 2

    输出#1

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

说明/提示

在第一个测试点中,树的结构如下:

最初,Herobrine 可能在任意一个节点。第一次操作检查节点 11,如果 Herobrine 在节点 11,他就被抓住了;否则,他只能在节点 22(他不能移动到刚刚检查过的节点 11)。因此,第二次操作检查节点 22,Herobrine 必然被抓住。

在第二个测试点中,树的结构如下:

最初,Herobrine 可能在任意一个节点 [1,2,3,4][1, 2, 3, 4]。第一次操作后,Herobrine 只能在节点 [1,3,4][1, 3, 4]。第二次操作摧毁了与节点 22 相连的所有边。由于与节点 11、33、44 相连的所有边都被摧毁,Herobrine 无法再移动。因此,接下来分别检查这三个节点(操作 33、44、55),就一定能抓住 Herobrine。

由 ChatGPT 4.1 翻译

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

首页