zoukankan      html  css  js  c++  java
  • POJ

    题目链接:http://poj.org/problem?id=2387

    #include <iostream>
    #include <string.h>
    #define MAX 0x3f3f3f3f
    #define N 2005
    using namespace std;
    /****************************************************************************************************************
                        题意:dijkstra
                        思路:
                        1,读清题意,m 和 n 是相反的
                        2,从 n 到 1 的最短路可以转化为从 1 到 n
    ****************************************************************************************************************/
    int Map[N][N];
    int dist[N],visit[N];
    int dijkstra(int n)
    {
        memset(dist,MAX,sizeof(dist));
        memset(visit,0,sizeof(visit));
    
        for(int i = 1;i <= n;i ++)
            dist[i]=Map[1][i];
    
        dist[1]=0;
        visit[1]=1;
    
        for(int i = 1;i <= n;i ++){
            int id,ans=MAX;
            for(int j = 1;j <= n;j ++){
                if(!visit[j] && dist[j] < ans){
                    ans=dist[j];
                    id=j;
                }
            }
    
            visit[id]=1;
    
            for(int j = 1;j <= n;j ++)
                if(!visit[j] && dist[id]+Map[id][j] < dist[j])
                    dist[j]=dist[id]+Map[id][j];
        }
    }
    int main()
    {
        int n,ed;
        while(cin>>n>>ed)
        {
            memset(Map,MAX,sizeof(Map));
    
            int a,b,c;
            for(int i = 1;i <= n;i ++){
                cin>>a>>b>>c;
                if(c < Map[a][b])
                    Map[a][b]=Map[b][a]=c;
            }
            dijkstra(ed);
    
            cout<<dist[ed]<<endl;
        }
        return 0;
    }
    



  • 相关阅读:
    Docker系列二:Docker的基本结构
    Codeforces 1013
    树形结构升级
    Codeforces 402 and 403 (Div. 2 and 1)
    Codeforces 342
    图论基础
    树形结构基础
    Codeforces 788 (Div. 1)
    NOIP/CSP-J/S初赛集锦
    树的重心
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6351989.html
Copyright © 2011-2022 走看看