首頁 文章 HihoCoder 1081dijkstra最短路算法模板

HihoCoder 1081dijkstra最短路算法模板

2020-03-21 10:47  瀏覽數:1706  來源:zsnoip    

#include<iostream>
#include<cstring>
using namespace std;
const int N = 1010 , M = 20010 ;
int n , m , s , t;
int g[N][N] , dist[N];
bool vis[N];
void dijkstra(int s){
memset(dist , 0x3f , sizeof(dist));
memset(vis , 0 , sizeof(vis));
dist[s] = 0;
for(int i = 1 ; i < n ; i++){
int x = 0;
for(int j = 1 ; j <= n ; j ++){
if(!vis[j] && (x == 0 || dist[j] < dist[x])) x = j ;
}
vis[x] = 1;
for(int y = 1 ; y <= n ; y++){
dist[y] = min(dist[y] , dist[x] + g[x][y]);
}
}
}
int main(){
cin >> n >> m >> s >> t;
memset(g , 0x3f , sizeof(g));
for(int i = 1; i <= n ; i++)
g[i][i] = 0;
for(int i = 1; i <=m ; i++){
int x , y , z;
cin >> x >> y >> z;
g[x][y] = min(g[x][y] , z);
g[y][x] = min(g[y][x] , z);
}
dijkstra(s);
cout << dist[t] << endl;
return 0;
}



聲明:以上文章均為用戶自行添加,僅供打字交流使用,不代表本站觀點,本站不承擔任何法律責任,特此聲明!如果有侵犯到您的權利,請及時聯系我們刪除。

字符:    改为:
去打字就可以设置个性皮肤啦!(O ^ ~ ^ O)