题目描述 给出一个集合关系的矩阵表示,请输出它传递闭包的矩阵表示。
输入 第一行是一个正整数n(n<100),代表矩阵的行数与列数。
下面n行描述一个矩阵。
输出 请输出其的传递闭包的矩阵表示。
样例输入 3 1 0 1 1 1 0 0 1 1 样例输出 1 1 1 1 1 1 1 1 1 提示 在数学中,在集合 X 上的二元关系 R 的传递闭包是包含 R 的 X 上的最小的传递关系。
#include<stdio.h> int main() { int n; scanf("%d",&n); int i,j,k,a[100][100]; for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(i=0;i<n;i++) { for(j=0;j<n;j++) if(a[j][i]==1) { for(k=0;k<n;k++) a[j][k]=(a[i][k]|a[j][k]); } } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } return 0; }