CF2133E.I Yearned For The Mines
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
小时候,Steve 渴望进入矿井!他的矿井可以表示为一棵有 n 个节点的树∗。
不幸的是,Steve 的最大死敌 Herobrine 潜入了他的矿井!任何时刻,Herobrine 都正好藏在一个节点里;最初,他可能在任意一个节点。Steve 可以执行以下操作:
- 1x —— 检查 Herobrine 当前是否在节点 x。如果在,Steve 就抓住了他。否则,Herobrine 可以选择是否移动到任意一个相邻节点(除了你刚刚检查过的那个)。
- 2x —— 摧毁所有与节点 x 相连的边;Herobrine 之后将无法再通过这些边移动。随后,Herobrine 可以选择是否移动到任意一个相邻节点。
请你找出一组不超过 ⌊45⋅n⌋ 次操作的方案,使得无论 Herobrine 最初藏在哪里、如何移动,Steve 都一定能抓住他。我们已经证明,在给定约束下总是存在这样的方案。
∗树是一个无环连通图。
输入格式
每个测试点包含多组测试数据。第一行包含一个整数 t(1≤t≤104),表示测试数据组数。
每组测试数据的第一行包含一个整数 n(2≤n≤2⋅105),表示节点数。
接下来的 n−1 行,每行包含两个整数 u 和 v(1≤u,v≤n),表示节点 u 和 v 之间有一条边。
保证给定的边构成一棵树。
保证所有测试数据中 n 的总和不超过 2⋅105。
输出格式
对于每组测试数据,首先输出一个整数 k(1≤k≤⌊45⋅n⌋),表示你要执行的操作数。
接下来输出 k 行。第 i 行(1≤i≤k)包含两个整数 ti 和 xi(1≤ti≤2,1≤xi≤n),表示第 i 次操作是在节点 xi 上执行操作 ti。
输入输出样例
输入#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 可能在任意一个节点。第一次操作检查节点 1,如果 Herobrine 在节点 1,他就被抓住了;否则,他只能在节点 2(他不能移动到刚刚检查过的节点 1)。因此,第二次操作检查节点 2,Herobrine 必然被抓住。
在第二个测试点中,树的结构如下:

最初,Herobrine 可能在任意一个节点 [1,2,3,4]。第一次操作后,Herobrine 只能在节点 [1,3,4]。第二次操作摧毁了与节点 2 相连的所有边。由于与节点 1、3、4 相连的所有边都被摧毁,Herobrine 无法再移动。因此,接下来分别检查这三个节点(操作 3、4、5),就一定能抓住 Herobrine。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?