jh1125kr   3달 전

플로이드로 풀었고,

bfs로 탐색하여 그룹을 지었고

그 그룹에서 의사전달시간 중 최대값이 최소가 되도록 대표를 뽑았습니다.

11
8
4 5
4 6
4 7
6 7
7 8
7 9
7 10
10 11
4
1
2
3
7


floyd값
0 987654321 987654321 987654321 987654321 987654321 987654321 987654321 98765432
1 987654321 987654321
987654321 0 987654321 987654321 987654321 987654321 987654321 987654321 98765432
1 987654321 987654321
987654321 987654321 0 987654321 987654321 987654321 987654321 987654321 98765432
1 987654321 987654321
987654321 987654321 987654321 0 1 1 1 2 2 2 3
987654321 987654321 987654321 1 0 2 2 3 3 3 4
987654321 987654321 987654321 1 2 0 1 2 2 2 3
987654321 987654321 987654321 1 2 1 0 1 1 1 2
987654321 987654321 987654321 2 3 2 1 0 2 2 3
987654321 987654321 987654321 2 3 2 1 2 0 2 3
987654321 987654321 987654321 2 3 2 1 2 2 0 1
987654321 987654321 987654321 3 4 3 2 3 3 1 0



987654321은 INF 값입니다.

이런식으로 나오게 하는것 아닌가요...?ㅠㅠ

jh1125kr   3달 전

아 플로이드 소스를

for (int k = 1; k <= n; k++) {
  for (int i = 1; i <= n; i++) {
   for (int j = 1; j <= n; j++)
   {
    if (floyd[i][j] > floyd[i][k] + floyd[k][j]) {
     floyd[i][j] = floyd[i][k] + floyd[k][j];
    }
   }
  }
 }

이렇게했어야했네요 ㅠㅠ

댓글을 작성하려면 로그인해야 합니다.