• 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;
    }
    



  • 相关阅读:
    bzoj3574[Hnoi2014]抄卡组
    bzoj3576[Hnoi2014]江南乐
    [GDKOI2016]小学生数学题
    bzoj3572[Hnoi2014]世界树
    bzoj3571[Hnoi2014]画框
    bzoj3573[Hnoi2014]米特运输
    指数循环节
    bzoj4013[HNOI2015]实验比较
    bzoj4012[HNOI2015]开店
    bzoj1095[ZJOI2007]Hide 捉迷藏
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6351989.html
Copyright © 2020-2023  润新知