#s1012. 传递闭包

传递闭包

B3611 【模板】传递闭包

题目描述

给定一张点数为 nn 的有向图的邻接矩阵,图中不包含自环,求该有向图的传递闭包。

一张图的邻接矩阵定义为一个 n×nn\times n 的矩阵 A=(aij)n×nA=(a_{ij})_{n\times n},其中

$$a_{ij}=\begin{cases} 1 & i \text{ 到 } j \text{ 存在直接连边} \\ 0 & i \text{ 到 } j \text{ 没有直接连边} \end{cases} $$

一张图的传递闭包定义为一个 n×nn\times n 的矩阵 B=(bij)n×nB=(b_{ij})_{n\times n},其中

$$b_{ij}=\begin{cases} 1 & i \text{ 可以直接或间接到达 } j \\ 0 & i \text{ 无法直接或间接到达 } j \end{cases} $$

输入格式

输入数据共 n+1n+1 行。

第一行一个正整数 nn

22n+1n+1 行每行 nn 个整数,第 i+1i+1 行第 jj 列的整数为 aija_{ij}

输出格式

输出数据共 nn 行。

11nn 行每行 nn 个整数,第 ii 行第 jj 列的整数为 bijb_{ij}

输入输出样例 #1

输入 #1

4
0 0 0 1
1 0 0 0
0 0 0 1
0 1 0 0

输出 #1

1 1 0 1
1 1 0 1
1 1 0 1
1 1 0 1

说明/提示

对于 100%100\% 的数据,1n1001\le n\le 100,保证 aij{0,1}a_{ij}\in\{0,1\}aii=0a_{ii}=0