算法理解见: https://www.bilibili.com/video/av18586085/?p=83

模板:

 #define INF 1000000000

 int N;
int dist[101],g[101][101];
int vis[101];
int path[101]; // path[i]表示在最短路径中,i的上一个点 void init()  // 初始化
{
for(int i = 1; i <= N; ++i)   {
for(int j = 1; j <= N; ++j)
{
if(i == j)
g[i][j] = 0;
else
g[i][j] = INF;
}
}
} void dijkstra(int start)
{
for(int i=1;i<=N;i++)
{
dist[i]=INF;
vis[i] = 0;
// path[i] = -1;
}
dist[start] = 0; while(1)
{
int mark=-1,mindis=INF;
for(int i=1;i<=N;i++)
{
if(!vis[i]&&dist[i]<mindis)
{
mindis=dist[i];
mark=i;
}
}
if(mark == -1) // 找不到未收录的节点,则说明算法结束,退出
break;
vis[mark]=1; for(int i=1;i<=N;i++)
{
if(!vis[i])
{
dist[i]=min(dist[i],dist[mark]+g[mark][i]);
// path[i] = mark; // 记录路径
}
}
}
}

dijkstra算法 模板的更多相关文章

  1. 最短路径---dijkstra算法模板

    dijkstra算法模板 http://acm.hdu.edu.cn/showproblem.php?pid=1874 #include<stdio.h> #include<stri ...

  2. dijkstra算法模板及其用法

    Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Di ...

  3. 【hdu 2544最短路】【Dijkstra算法模板题】

    Dijkstra算法 分析 Dijkstra算法适用于边权为正的情况.它可用于计算正权图上的单源最短路( Single-Source Shortest Paths, SSSP) , 即从单个源点出发, ...

  4. 图的最短路径算法Dijkstra算法模板

    Dijkstra算法:伪代码 //G为图,一般设为全局变量,数组d[u]为原点到达个点的额最短路径, s为起点 Dijkstra(G, d[u], s){ 初始化: for (循环n次){ u = 是 ...

  5. hdu-2544-最短路(dijkstra算法模板)

    题目链接 题意很清晰,入门级题目,适合各种模板,可用dijkstra, floyd, Bellman-ford, spfa Dijkstra链接 Floyd链接 Bellman-Ford链接 SPFA ...

  6. Dijkstra算法模板

    自己对Dijstra算法的理解是: 首先输入保存点,边的权值(注意无向图和有向图在保存时的区别). 将表示从起点st到顶点 i 的距离的d[ i ]数组的每一个值初始化为INF,令d[st] = 0. ...

  7. 最短路径Dijkstra算法模板题---洛谷P3371 【模板】单源最短路径(弱化版)

    题目背景 本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通过,如有需要请移步 P4779. 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入格式 第一行 ...

  8. 迪杰斯特拉/dijkstra 算法模板(具体凝视)

    #include <iostream> #include <malloc.h> #include <cstring> #include <stack> ...

  9. 最短路Dijkstra算法模板

    // // dijkstra妯℃澘.cpp // algorithm // // Created by david.xu on 2018/8/6. // Copyright 漏 2018骞?david ...

随机推荐

  1. linux命令补全工具

    一:下载bash-competion工具 https://files.cnblogs.com/files/zgngg/bash-completion.zip 二:解压  unzip bash-comp ...

  2. Zookeeper的安装与使用:

  3. windows修改或删除已保存samba输入的用户名和密码

    可在系统的"控制面板\用户帐户\凭据管理器\windows 凭据"中找到 可以在"开始菜单->运行",输入"control userpasswo ...

  4. Django项目:CRM(客户关系管理系统)--83--73PerfectCRM实现CRM模板统一

    {#king_index.html#} {## ————————73PerfectCRM实现CRM模板统一————————#} {% extends "master/sample.html& ...

  5. Linux 命令之head, tail, tr, sort, uniq, grep

    head [filename] head -n 11 [filename] -> First 11 lines head -c 20 [filename] -> First 20 char ...

  6. python图像翻转

    准备跟着台湾的一个机器学习课程好好学学python,链接在这http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html 该课程开始有一个作业,叫做HW0 ...

  7. swoole入门abc

    1. 入门abc 1.1 github账号添加 第一步依然是配置git用户名和邮箱 git config user.name "用户名" git config user.email ...

  8. 使用 windows 批处理指令(BAT文件)进行文件删除、复制操作

    以下是做文件删除和复制的批处理指令 ::替换文件需要添加 /y 参数才能直接替换.不然会出现提示是否替换. ::复制Axis2Implementation和WebServices编译后的文件到tomc ...

  9. Leetcode485.Max Consecutive Ones最大连续1的个数

    给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组 ...

  10. golang 程序 在linux 出现 段错误

    刚做的 golang 程序 发布到linux 竟然出现 段错误 原因是 内核版本过低,请升级内核