• hdu2544


    #include <iostream>  //第一道用Dijkstra解的题
    #include <cstring>
    using namespace std;
    
    #ifndef ONLINE_JUDGE
    #include <fstream>
    ifstream fin("test.txt");
    #define cin fin
    #endif
    int n,m;
    const int INF = 1000010;
    int vis[200],dis[200];
    int graph[200][200];
    int main()
    {
        ios::sync_with_stdio(false);
        int a,c,b;
        while(cin >> n >> m)
        {
            if(!n && !m)
            break;
            memset(vis,0,sizeof(vis));
            for(int i = 1; i <= n; ++i)
            for(int j = 1; j <= n; ++j)
            {
                if(i==j)
                graph[i][j] = 0;
                else
                graph[i][j] = INF;
            }
            for(int i = 1; i <= m; ++i)
            {
                cin >> a >> b >> c;
                graph[a][b] = graph[b][a] = c;
            }
            for(int i = 1; i <= n; ++i)
            {
                dis[i] = graph[i][1];
            }
            vis[1] = 1;
            for(int i = 0; i < n; ++i)
            {
                int min = INF,t = 0;
                for(int j = 2; j <= n; ++j)
                if(!vis[j] && dis[j] < min)
                {
                    min = dis[j];
                    t = j;
                }
                vis[t] = 1;
                for(int j = 1; j <= n; ++j)
                {
                    if(!vis[j] && dis[j] > dis[t] + graph[t][j])
                    dis[j] = dis[t] + graph[t][j];
                }
            }
            cout << dis[n] << endl;
        }
        return 0;
    }
  • 相关阅读:
    矩阵图
    博客园评价
    团队冲刺
    团队冲刺
    第二阶段团队冲刺
    团队博客
    团队冲刺
    总结会议
    会议10
    会议09
  • 原文地址:https://www.cnblogs.com/fchx/p/3097579.html
Copyright © 2020-2023  润新知