|
||||||||||
矩阵的周期Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 42 Accepted Submission(s): 17 Problem Description 给定一个 $n\times n$ 的01矩阵 $\textbf{M}$,令 $ f ( i , j , k ) = [(\textbf{M}^k)_{i,j}\neq 0]$,请对于每对 $(i,j)$ ($1\leq i,j\leq n$),找出最小的正整数 $t$,满足当 $k$ 充分大时必有 $ f ( i , j , k ) = f ( i , j , k + t ) $。 Input 第一行包含一个正整数 $T$ ($1\leq T\leq 20$),表示测试数据的组数。 每组数据第一行包含一个正整数 $n$ ($1\leq n\leq 60$),表示矩阵的大小。 接下来 $n$ 行,每行一个长度为 $n$ 的01串,第 $i$ 行第 $j$ 列表示 $\textbf{M}_{i,j}$ ($1\leq i,j\leq n$)。 Output 对于每组数据输出 $n$ 行,第 $i$ ($1\leq i\leq n$) 行输出 $n$ 个整数,其中第 $j$ ($1\leq j\leq n$) 个整数表示最小的正整数 $t$,满足当 $k$ 充分大时必有 $ f( i , j , k ) = f ( i , j , k + t ) $;若找不到这样的 $t$,输出 ''$\texttt{-1}$''。 Sample Input
Sample Output
Source | ||||||||||
|