문제

문제 링크

어떻게 접근할 것인가

  • 이 문제는 모든 노드에서 모든 노드까지 갈 수 있는 길이 있는지 보는 문제이다.
  • 때문에 플로이드 와샬을 또 써부렸다.

코드

#include <cstdio>
#include <queue>
using namespace std;
int n, arr[100][100], visited[100];
int main(){
    scanf("%d", &n);
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++)scanf("%d", &arr[i][j]);
    }
    for(int k = 0; k < n; k++){
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                if(arr[i][k] && arr[k][j]) arr[i][j] = 1;
            }
        }
    }
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++)printf("%d ", arr[i][j]);
        printf("\n");
    }

}

느낀점

  • 플로이드 와샬로 풀어부렸다 ㅎㅎ