C++语言(单源最短路)

这篇博客介绍了如何使用C++语言实现单源最短路径算法,作者分享了邻接表和堆优化后的代码片段,并表示后续可能会补充图的相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只有一丢~的代码(附加一些不知道对不对的口胡)

至于图吗,,,,,我想后期我会补上~只是我想~~~~

先贴上

#include<iostream>
#include<cstdio>
#include<string.h>
#define Tnf 2147483647 
/*
fist[一个点x]=边 表示x这个点连接的第一条边是谁
next[一条边mm]=边kk 表示mm这条边连接的下一条边的名字叫kk
to[一条边xx]=一个点y1 表示xx这条边连向的点是y1
weight[一条边]=一个值, 是表示这个边的权值 
*/
using namespace std;
int n,m,s;
long long int dis[500001],next[500001],head[500001],book[500001],to[500001],w[500001],tot=0;
void add(int a,int b,int c)
{
    /*要知道,邻接表中(加边操作)只能是通过第一条边是谁来查找,要想插入每一条边,只能是通过不断的更新第一条便来实现的,先让现在插入的边连接目前该电
    的第一条边,然后把应该插入的点视为该点的第一条边*/
    tot++;
    to[tot]=b;
    w[tot]=c; 
    next[tot]=head[a];
    head[a]=tot;
}
/*
dijkstra 的一般步骤,1.从一个点开始搜索,不断计算长度(先初始化,如果两路不通,直接输出最大值即可,speciallist dis这个数组也是会因为开始的源点不同而变化,每次都更新还是有必要的) 
                     2.每一次都是从不同的点进行的d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值