HDU 3790 最短路徑問題

2021-06-08 07:12:49 字數 608 閱讀 1881

hdu-3790-最短路徑問題

單源最短路勁,更新路勁時要更新花費

#include#include#include#includeusing namespace std;

#define inf 0x7fffffff

int n,m;

int map[1005][1005];

int cost[1005][1005];

void dijkstra(int st,int ed)

memset(visit,0,sizeof(visit));

visit[st]=1;

for(i=1;idis[v]+map[v][j])

else if(dis[j]==dis[v]+map[v][j])

}} }

printf("%d %d\n",dis[ed],value[ed]);

}int main()

while(m--)

else if(map[a][b]==c)

}scanf("%d%d",&st,&ed);

dijkstra(st,ed);

} return 0;

}

hdu3790 最短路徑問題

wa了無數次,終於過了,還是dijkstra,只不過在距離,相同時,多判斷一下時間。注意重邊!include include include define m 0x7fffffff using namespace std struct p 2000 struct c 1020 1020 int vi...

HDU 3790 最短路徑問題

include include include define nil 100000 struct node node 1001 初始化操作,把源點初始化為0,其他正無窮 param n 結點個數 param s 源點 int init shortpath source int n,int s nod...

HDU 3790 最短路徑問題

給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。input 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數 s,...