CFCF2193G.Paths in a Tree

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

这是一个交互题。

在本题中,给定一个无环、连通、无向图,共有 nn 个顶点。我们定义两个顶点 vvuu 之间的路径为一系列不重复的顶点 p1,p2,,pkp_1, p_2, \dots, p_k,使得 p1=vp_1 = vpk=up_k = u,且对于所有 ii1i<k1 \le i < k),都存在一条边连接顶点 pip_ipi+1p_{i+1}

有两个隐藏的顶点 xxyy(它们可能相同)。你可以进行如下操作:

  • 选择两个顶点 aabb1a,bn1 \le a, b \le n),系统会回答:如果从 xxyy 的路径与从 aabb 的路径有至少一个公共顶点,那么返回 11,否则返回 00

你的任务是在不超过 n2+1\lfloor\frac{n}{2}\rfloor + 1 次询问内,找出 xxyy 路径上的至少一个顶点。注意,交互器是自适应的,也就是说,隐藏顶点 xxyy 可能会依据你的询问发生改变,但不会与先前的回答矛盾。

输入格式

每组测试包含多组数据。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。以下为每组数据的描述。

每组测试用例第一行为一个整数 nn2n21052 \le n \le 2 \cdot 10^5),表示图的顶点数。

接下来有 n1n-1 行,每行包含两个整数 vvuu1v,un1 \le v, u \le n),表示顶点 vvuu 之间有一条边。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输入输出样例

  • 输入#1

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

    输出#1

    ? 1 1
    
    ! 1
    
    
    ? 1 1
    
    ? 2 2
    
    ! 3
    
    
    ? 1 3
    
    ? 4 4
    
    ! 4
首页