티스토리 툴바

자유치's 스킨공방

Dijktra

Programming 2009/03/03 21:32

#include <stdio.h>
const int NMAX = 100;
int link[NMAX][NMAX];
int check[NMAX];
int table[NMAX];
int n;
int get_node(){
 int r_val = -1,cost = 987654321;
 for(int i =0;i<n;i++) {
  if(cost > table[i] && !check[i]){
   cost = table[i];
   r_val = i;
  }
 }
 check[r_val] = 1;
 return r_val;
}
void dijkstra(){
 
 for(int i=0;i<n;i++)
  table[i] = 987654321;
 table[0] = 0;
 for(int i=0;i<n;i++){
 
  int min_node = get_node();
 
  for(int j=0;j<n;j++){
   if(link[min_node][i] > 0 && link[min_node][i] + table[i] < table[j]){
    table[j] = link[min_node][i] + table[i];                         
   }                                                                    
  }
 }
}
int main(){
 dijkstra();
 return 0;
}

아.. vim 에서 쓰면 알록달록 하게 나오게 하는거 있던데

나도 그렇게 하고 싶다.
크리에이티브 커먼즈 라이선스
Creative Commons License

'Programming' 카테고리의 다른 글

Dijktra  (3) 2009/03/03
[UVA 10000] Longest Paths  (6) 2007/07/26
[UVA 10082] WERTYU  (0) 2007/07/26
[UVA 10782] Send More Money  (0) 2007/07/26
[PKU 1002] 487-3279  (2) 2007/04/12
im4u 선수반 주말문제 - 테러와의 전쟁  (3) 2007/01/28
Posted by 자유치