hdu 1874 畅通工程续

来源:互联网 发布:mac登陆界面变英文 编辑:程序博客网 时间:2024/05/16 07:38

点击打开链接

 

基础的利用Dijkstra()模板算法即可AC。

 

代码如下:

#include <iostream>using namespace std;#define MAX 99999999   int map[201][201], dis[201];int visit[201];int n,m,s,t;void Dijkstra(){int i, k, min, j;for(i=0; i<n; i++){visit[i] = 0;dis[i] = map[s][i];}visit[s] = 1;dis[s] = 0;for(i=1; i<n; i++){min = MAX;for(j=0; j<n; j++)if(!visit[j] && dis[j] < min){min = dis[j];k = j;}if(min == MAX)break;visit[k] = 1;for(j=0; j<n; j++)if(!visit[j] && dis[j] > dis[k] + map[k][j])dis[j] = dis[k] + map[k][j];}if(dis[t] != MAX)cout<<dis[t]<<endl;elsecout<<"-1"<<endl;}int main(){int i, j, x, y, d;while(cin>>n>>m){for(i=0; i<n; i++)for(j=0; j<n; j++)map[i][j] = MAX;for(i=0; i<m; i++){cin>>x>>y>>d;if(map[x][y] > d)map[x][y] = map[y][x] = d;}cin>>s>>t;Dijkstra();}return 0;}


 

0 0
原创粉丝点击