P1339Heat Wave G
一、题目描述
二、解题思路
Dijkstra模板题
三、代码实现
1 #include "bits/stdc++.h" 2 using namespace std; 3 const int inf = 1e9 + 10; 4 int graph[2510][2510]; 5 int n,m,s,t; 6 int u,v,w; 7 int dis[2510],vis[2510]; 8 int main() 9 { 10 cin >> n >> m >> s >> t; 11 for(int i = 1; i <= n;i++) 12 for(int j = 1;j <= n;j++) 13 graph[i][j] = inf; 14 for(int i = 1;i <= m;i++){ 15 cin >> u >> v >> w; 16 graph[u][v] = w; 17 graph[v][u] = w; 18 } 19 vis[s] = 1; 20 for(int i = 1;i <= n;i++) 21 dis[i] = graph[s][i]; 22 for(int i = 2;i <= n;i++){ 23 int bk = inf; 24 int id = 0; 25 for(int j = 1;j <= n;j++) 26 if(!vis[j] && dis[j] < bk){ 27 bk = dis[j]; 28 id = j; 29 } 30 vis[id] = 1; 31 for(int j = 1;j <= n;j++){ 32 if(dis[j] > graph[id][j] + bk) 33 dis[j] = graph[id][j] + bk; 34 } 35 } 36 cout << dis[t]; 37 return 0; 38 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}