• HOJ2544 最短路【Dijkstra】


    最简单的dijkstra练习。

    都是模板。

    练习几遍,加深理解记忆。

    //dijkstra最短路径练习
    #include<stdio.h>
    #include<iostream>
    using namespace std;
    #define maxdist 1005
    #define maxn 102
    int n,e;
    int adj[maxn][maxn];
    int dist[maxn];
    int sure[maxn];//标记是否确定最短距离 
    void dijkstra(int v0){
        dist[v0]=0;
        sure[v0]=1;
        //初始化dist数组
        for(int i=1;i<=n;i++){
            if(i!=v0){
                dist[i]=adj[v0][i];
            }
        } 
        for(int j=2;j<=n;j++){
            //找最小的
            int dmin=maxdist;
            int subscript;
            for(int i=1;i<=n;i++){
                if(sure[i]==0&&dist[i]<dmin){
                    dmin=dist[i];
                    subscript=i;
                }
            } 
            //最小的标记
            sure[subscript]=1;
            //更新
            for(int i=1;i<=n;i++){
                if(sure[i]==0&&dist[subscript]+adj[subscript][i]<dist[i]){
                    dist[i]=dist[subscript]+adj[subscript][i];
                }
            } 
        }
        
    } 
    int main(){
        cin>>n>>e;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                adj[i][j]=maxdist;
            }
        }
        for(int i=0;i<e;i++){
            int x,y,w;
            cin>>x>>y>>w;
            adj[x][y]=adj[y][x]=w;
        }
        dijkstra(1);
        cout<<dist[n]<<endl;
    }
  • 相关阅读:
    制作dos启动u盘
    服务器之ECC报错检查
    shc 对 Linux shell 脚本加密.
    Linux
    windows查看端口占用
    python语言
    AppScan9.0安装破解
    局域网灰色设置解除
    shell脚本
    nginx安装
  • 原文地址:https://www.cnblogs.com/Elaine-DWL/p/6665196.html
Copyright © 2020-2023  润新知