hdu 1874 畅通工程续

来源:互联网 发布:json对象添加数据 编辑:程序博客网 时间:2024/04/29 22:57

dp

 

#include<stdio.h>#define INT_MAX 0xffffff#define NUM 205int map[NUM][NUM];int dist[NUM];int visited[NUM];int n,m;void dijkstra(int v){int i,j,k;for(i=0;i<n;i++){if(map[v][i]>0&&i!=v){dist[i]=map[v][i];} else {dist[i]=INT_MAX;}visited[i]=0;}dist[v]=0;visited[v]=1;for(i=1;i<n;i++){int min=INT_MAX;int u;for(j=0;j<n;j++){if(visited[j]==0&&dist[j]<min){min=dist[j];u=j;}}visited[u]=1;for(k=0;k<n;k++){if(visited[k]==0&&map[u][k]>0&&min+map[u][k]<dist[k]){dist[k]=min+map[u][k];}}}}int main(){int i,j,x,source,t;while(scanf("%d%d",&n,&m)!=EOF){for(i=0;i<n;i++)for(j=0;j<n;j++)map[i][j]=INT_MAX;while(m--){scanf("%d%d%d",&i,&j,&x);if(x<map[i][j]){map[i][j]=x;map[j][i]=x;}}scanf("%d%d",&source,&t);dijkstra(source);if(dist[t]==INT_MAX)printf("-1\n");else printf("%d\n",dist[t]);}return 0;}


 

 

 

原创粉丝点击