Notice
Recent Posts
Recent Comments
:: ADVANCE ::
[Floyd] 플로이드 알고리즘 본문
반응형
[Floyd] 플로이드 알고리즘
(graph 최단거리 알고리즘)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <stdio.h> #define SIZE 101 #define INF 1000 int graph[SIZE][SIZE]; int floyd[SIZE][SIZE]; void init() { int i, j; for (i = 0; i < SIZE; i++) { for (j = 0; j < SIZE; j++) { graph[i][j] = floyd[i][j] = INF; } } } void dofloyd(int n) { int i, j, k; // copy graph to floyd for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { floyd[i][j] = graph[i][j]; } } for (k = 1; k <= n; k++) { for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { if (floyd[i][k] + floyd[k][j] < floyd[i][j]) { floyd[i][j] = floyd[i][k] + floyd[k][j]; } } } } } int main() { int n, m; int i; int from, to; scanf("%d %d", &n, &m); init(); for (i = 0; i < m; i++) { scanf("%d %d", &from, &to); graph[from][from] = graph[to][to] = 0; graph[from][to] = graph[to][from] = 1; } dofloyd(n); return 0; } | cs |
반응형
'Algorithm > Algorithm' 카테고리의 다른 글
[Binary Search] 이진 탐색 (0) | 2016.06.24 |
---|---|
[Algorithm][math] 소수, 에라토스테네스의 체 (0) | 2016.05.24 |
[Heap Sort] 힙 정렬 (0) | 2015.07.16 |
[Quick Sort] 퀵 정렬 (0) | 2015.07.15 |
[DFS] 깊이 우선 탐색 (Depth First Search) (0) | 2015.01.04 |
Comments