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



  • 相关阅读:
    3.5——课题选择
    3.8——K-th Substring
    01背包dp
    贪心——IQ
    Secret Project Gym
    快速幂&矩阵快速幂
    用栈非递归实现fib数列
    CodeForces Round #590 (Div 3)
    SQL Server常见问题
    SQL基础函数
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6351989.html
Copyright © 2011-2022 走看看