CFCF2208D1.Tree Orientation (Easy Version)

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

这是该问题的简单版本。不同之处在于本版本中 nn 的约束较低。只有在解决了该问题所有版本后,你才能进行 hack。

你曾经有一棵包含 nn 个节点的无向树。为了让树看起来更有趣,你决定给每一条 n1n-1 条边赋予一个任意方向。

随着时间的流逝,你忘记了你树的结构。然而,你发现了一张便条,上面记录了在给每条边指定方向后,对于所有满足 1u,vn1 \le u, v \le n 的有序对 (u,v)(u, v),节点 uu 是否能够到达节点 vv

你希望利用便条上的信息,找出树的结构以及每条边的方向。如果有可行解,请构造一种方案。如果存在多组解,你只需输出其中一种即可。

^{\text{∗}} 对于有向图,如果存在一系列节点 u1,u2,,uku_1, u_2, \ldots, u_k,使得 u1=x,uk=yu_1 = x, u_k = y,并且对于每个 2ik2 \le i \le k,有有向边 ui1uiu_{i-1} \rightarrow u_i 存在,则称 xx 可以到达 yy。特别地,节点总是可以到达自身。

输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn2n5002 \le n \le 500),表示树的节点数。

接下来的 nn 行,每一行包含一个字符串 sis_isis_i 长度为 nn,只包含 0011。若 sis_i 的第 jj 个字符为 11,表示在所有边定向后,节点 ii 能到达节点 jj

保证所有测试用例满足 n35003\sum n^3 \le 500^3

输出格式

对于每个测试用例,如果存在可行的方案,输出 Yes\texttt{Yes},否则输出 No\texttt{No}。如果答案是 Yes\texttt{Yes},在随后的 n1n-1 行中描述你构造的树边。

输出 n1n-1 行,每行两个整数 xxyy,表示存在一条有向边 xyx\rightarrow y。如果存在多组答案,输出任意一种均可。

可以使用任意大小写输出答案,如 "yEs", "yes", "Yes", "YES" 都被认为是肯定的回答。

输入输出样例

  • 输入#1

    11
    4
    1000
    1111
    1010
    0001
    4
    1111
    0111
    0010
    0111
    4
    0011
    0111
    0011
    0001
    4
    1000
    0110
    0010
    1111
    4
    1000
    0110
    1010
    1111
    5
    10000
    01011
    00111
    00010
    00001
    5
    10000
    11000
    10101
    10111
    00001
    5
    10000
    01101
    00100
    01110
    10001
    4
    1100
    0100
    0011
    0001
    4
    1110
    0100
    0010
    0101
    3
    100
    111
    101

    输出#1

    Yes
    2 3
    2 4
    3 1
    No
    No
    Yes
    2 3
    4 1
    4 2
    No
    No
    Yes
    2 1
    3 1
    3 5
    4 3
    No
    No
    Yes
    1 2
    1 3
    4 2
    Yes
    2 3
    3 1

说明/提示

对于第一个测试用例,节点 1144 只能到达自身,节点 22 可以到达所有节点,节点 33 只能到达节点 1133。所构造的边满足该约束。

对于第二个测试用例,可以证明不存在可行方案。

首页