zoukankan      html  css  js  c++  java
  • 单源最短路Dijstra

    #include<iostream>
    #include<cstring>
    #define INF 0x3f3f3f3f
    using namespace std;
    int edge[105][105],d[105];
    int Dijstra(int st,int n)
    {
        int mark[105],minn,minn_num;
        memset(mark,0,sizeof(mark));
        for(int i=1;i<n;i++)
        {
            d[i]=edge[0][i];
        }
        d[0]=0;
        mark[0]=1;
        for(int i=1;i<n;i++)
        {
            int minn=INF;
            for(int j=0;j<n;j++)
            {
                if(mark[j]==0&&d[j]<=minn)
                {
                    minn=d[j];
                    minn_num=j;
                }
            }
            mark[minn_num]=1;
            for(int j=0;j<n;j++)
            {
                if(d[j]>minn+edge[minn_num][j])
                {
                    d[j]=minn+edge[minn_num][j];
                }
            }
        }
    }
    int main()
    {
        int n,m,x,y,val;
        while(cin>>n>>m)
        {
            if(n==0&&m==0)
                break;
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    if(i==j)
                    edge[i][j]=0;
                    else
                        edge[i][j]=INF;
                }
            }
            for(int i=0;i<m;i++)
            {
                cin>>x>>y>>val;
                edge[x-1][y-1]=val;
                edge[y-1][x-1]=val;
            }
            Dijstra(0,n);
            cout<<d[n-1]<<endl;
        }
    }
  • 相关阅读:
    重载小于号
    无聊的会议
    程序内存和时间
    对拍
    读入和输出优化
    codevs 3269 混合背包
    清北第三套题
    codevs 2188 最长上升子序列
    清北第二套题
    [COGS896] 圈奶牛
  • 原文地址:https://www.cnblogs.com/Leozi/p/10835111.html
Copyright © 2011-2022 走看看