#输入
# 7
# 1 0 0 0 0 0 0
# 0 0 0 0 0 0 0
# 0 0 0 0 0 0 1
# 0 1 0 0 0 0 0
# 0 0 1 0 0 0 0
# 1 0 0 0 0 0 0
# 0 0 0 1 0 0 0
import copy
L = [] # 建立空列表存放即将输入的矩阵
order = int(input()) # 输入矩阵的阶数
for i in range(order):
nums = list(map(int, input().split()))
L.append(nums) # 依次输入每行的数字 把矩阵形成二维列表 L[0]表示该矩阵第一行所有的数字
def l_add(a, b): # 逻辑加
if a == 0 and b == 0:
return 0
else:
return 1
def res_t(L): # 传递闭包-warshall算法
res_t = copy.deepcopy(L)
for j in range(order):
for i in range(order):#遍历一遍从第一列开始,依次到最后一列
if int(res_t[i][j]) == 1:
for k in range(order):
res_t[i][k] = l_add(int(res_t[i][k]), int(res_t[j][k]))#如果矩阵中i行j列为1,则将第i行的每个数都和j行进行或运算替代第i行(将第j行加到第i行)
for i in res_t:
for j in i:
print(j, end=' ')
print()#打印结果
print("t(R):")
res_t(L)
03-26
3638