zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    flask基础 MUI
    flask基础 MongoDB
    falsk 基础 语音识别与语音合成()
    flask基础 websocket ()
    flask基础四 请求上下文()
    flask基础三
    学习整理
    Elasticsearch
    课程学习:Linux系统管理
    课程学习:程序设计与算法
  • 原文地址:https://www.cnblogs.com/Elaine-DWL/p/6665196.html
Copyright © 2011-2022 走看看