hd 2544 最短路径(简单dij)

来源:互联网 发布:python 计时功能 编辑:程序博客网 时间:2024/05/17 06:40

很简单,直接模版

<span style="font-size:14px;">#include <iostream>using namespace std;int main(){    int inf=9999999;    int map[1005][1005];    int visit[1005];    int dis[1005];    int i,j,n,m,a,b,c,min_,u = 0;    while(scanf("%d%d",&n,&m)!=EOF)    {        if(n==0 && m==0)            break;        for(i=1;i<=n;i++)        {            for(j=1;j<=n;j++)            {                if(i==j)                    map[i][j]=0;                else                    map[i][j]=inf;            }        }        memset(visit,0, sizeof(visit));        memset(dis, 0, sizeof(dis));        for(i=1;i<=m;i++)        {            cin>>a>>b>>c;            if(map[a][b]>c)            {                map[a][b]=map[b][a]=c;            }        }        for(i=1;i<=n;i++)        {            dis[i]=map[1][i];        }        visit[1]=1;        for(i=1;i<n;i++)        {            min_=inf;            for(j=1;j<=n;j++)            {                if(visit[j]==0 && dis[j]<min_)                {                    min_=dis[j];                    u=j;                }            }            visit[u]=1;            for(j=1;j<=n;j++)            {                if(map[u][j]<inf)                {                    if(dis[j]>dis[u]+map[u][j])                    {                        dis[j]=dis[u]+map[u][j];                    }                }            }        }        cout<<dis[n]<<endl;    }}</span>


0 0
原创粉丝点击