ROUTING 최적화문제 draner ROUTING 튜토리얼 그래프에 있는 문제입니다... 다익스트라나 그래프 문제는 전부 인접행렬을 이용해서 풀었는데요... 이러면 메모리 초과로 안풀립니다.. 10000*10000 ./.... 어떻게 접근하는게 좋을까요??;;; #include <iostream> using namespace std; #define INF 99999999; double arr[10001][10001]; int visit[10001]; double dist[10001]; int computer, node; void dijkstra() { int i,j; int min; int v; dist[0] = 1; for ( i =0;i <computer; i++) { min = INF; for ( j =0 ; j <computer; j++) { if ( visit[j] == 0 && min > dist[j]) { min = dist[j]; v = j; } } visit[v] = 1; for ( j = 0;j < computer; j++) { if ( dist[j] > dist[v] * arr[v][j] && arr[v][j]!=0 ) { dist[j] = dist[v] * arr[v][j]; } } } } int main(){ int testcase ; cin>>testcase; int x,y; double weight; for(int t=0 ;t<testcase;t++){ cin>>computer>>node; for(int i=0; i<computer; i++){ visit[i]=0; } for(int i=0; i<computer;i++){ for(int j=0; j<computer; j++){ if(i!=j) arr[i][j]= INF; } } for(int i=0; i<node;i++){ cin>>x>>y; scanf("%lf", &weight); if(arr[x][y]>weight) arr[x][y]= weight; } for ( int i =0;i <computer; i++) { dist[i] = INF; } dijkstra(); printf("%.10lf\n",dist[computer-1]); } return 0; } 8년 전
0개의 댓글이 있습니다. 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
draner
ROUTING
튜토리얼 그래프에 있는 문제입니다...
다익스트라나 그래프 문제는 전부 인접행렬을 이용해서 풀었는데요...
이러면 메모리 초과로 안풀립니다..
10000*10000 ./....
어떻게 접근하는게 좋을까요??;;;
8년 전