$O(n^3)$
플로이드 알고리즘을 사용한다.
#include<cstdio> int n, c[100][100]; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) scanf("%d", &c[i][j]); for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) for (int k = 0; k < n; k++) c[j][k] |= c[j][i] & c[i][k]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) printf("%d ", c[i][j]); puts(""); } return 0; }
댓글 없음 :
댓글 쓰기