#CF2056B. Find the Permutation
Find the Permutation
B. Find the Permutation
题意
有一个 个顶点的无向图,顶点编号 到 。 该图编码了一个隐藏的排列 (长度为 ,元素是 到 的整数)。
图的构造方式如下: 对于每一对整数 ,检查 和 的值:
如果 ,则在 顶点 和顶点 之间添加一条无向边。 注意:边的端点不是 和 ,而是它们的值 和 。
给定图(邻接矩阵),保证存在唯一的排列 生成该图。 请还原并输出 。
输入格式
第一行 ()
对于每个测试用例:
第一行 ()
接下来 行,每行一个长度为 的字符串 , 表示邻接矩阵: 表示顶点 与 有边。
保证图无自环(),无向()。
所有测试用例的 之和 。
输出格式
每个测试用例输出一行 个整数 。
3
1
0
5
00101
00101
11001
00001
11110
6
000000
000000
000000
000000
000000
000000
1
4 2 1 3 5
6 5 4 3 2 1
注意:
在第一个样例中,p=[1]。因为不存在满足 1≤i<j≤n 的数对,所以图中没有边。
第二个样例对应的图如下所示。例如,当我们取 i=3、j=4 时,会在顶点 pi=1 和 pj=3 之间连一条边,因为 pi<pj。而当我们取 i=2、j=3 时,pi=2、pj=1,不满足 pi<pj,因此不在 2 和 1 之间连边。

在第三个样例中,图中没有边,这意味着不存在满足 1≤i<j≤n 且 pi<pj 的整数对。因此,p=[6,5,4,3,2,1]。