【模板】【图论】最短路

Frenet坐标系下动态街道场景的最优轨迹生成 本文详细解读了Lattice Planner 阅读详情

最近打算整理一下noip范围内的各种板子,就从最短路开始吧。
因为是给自己看的所以没加注释233

Dijkstra:

#include <algorithm>
#include <cstdio>
#include <queue>
using namespace std;
const int mxn =10003,mxm =500003,inf=0x7fffffff;
struct Edge{
    int nx,to,val;
}e[mxm];
struct Node{
    int d,u;
    bool operator < (const Node &x) const{
        return x.d<d;
    }
};
int hd[mxn];
int vis[mxn];
int dis[mxn];
int n,m,s,ecnt;
inline void add_edge(int u,int v,int w)
{
    e[++ecnt].nx=hd[u];
    hd[u]=ecnt;
    e[ecnt].to=v;
    e[ecnt].val=w;
}
void Dijkstra(int s)
{
    priority_queue<Node>q;
    for(int i=1;i<=n;i++) dis[i]=inf;
    dis[s]=0;
    q.push((Node){0,s});
    while(!q.empty())
    {
        Node x=q.top();q.pop();
        int u=x.u;
        if(vis[u]) continue;
        vis[u]=true;
        for(int i=hd[u];i;i=e[i].nx)
        {
            int v=e[i].to;
            if(dis[v]>dis[u]+e[i].val)
            {
                dis[v]=dis[u]+e[i].val;
                q.push((Node){dis[v],v});
            }
        }
    }
}
int main()
{
    scanf("%d%d%d",&n,&m,&s);
    for(int i=1;i<=m;i++)
    {
        int u,v,w;
        scanf("%d%d%d",&u,&v,&w);
        add_edge(u,v,w);
    }
    Dijkstra(s);
    for(int i=1;i<=n;i++) printf("%d ",dis[i]);
    printf("\n");
    return 0;
}

SPFA:

#include <algorithm>
#include <cstdio>
#include <queue>
using namespace std;
const int mxn =10003,mxm =500003,inf=0x7fffffff;
struct Edge{
    int nx,to,val;
}e[mxm];
int hd[mxn];
int inq[mxn];
int dis[mxn];
int n,m,s,ecnt;
inline void add_edge(int u,int v,int w)
{
    e[++ecnt].nx=hd[u];
    hd[u]=ecnt;
    e[ecnt].to=v;
    e[ecnt].val=w;
}
void spfa(int s)
{
    queue<int>q;
    for(int i=1;i<=n;i++) dis[i]=inf;
    dis[s]=0;
    q.push(s);
    inq[s]=true;
    while(!q.empty())
    {
        int u=q.front();q.pop();
        inq[u]=false;
        for(int i=hd[u];i;i=e[i].nx)
        {
            int v=e[i].to;
            if(dis[v]>dis[u]+e[i].val)
            {
                dis[v]=dis[u]+e[i].val;
                if(!inq[v])
                {
                    q.push(v);
                    inq[v]=true;
                }
            }
        }
    }
}
int main()
{
    scanf("%d%d%d",&n,&m,&s);
    for(int i=1;i<=m;i++)
    {
        int u,v,w;
        scanf("%d%d%d",&u,&v,&w);
        add_edge(u,v,w);
    }
    spfa(s);
    for(int i=1;i<=n;i++) printf("%d ",dis[i]);
    printf("\n");
    return 0;
}

Floyed:

#include <cstdio>
#include <algorithm>
using namespace std;
const int mxn =103,inf=0x7fffffff;
int g[mxn][mxn];
int n,m,s;
int main()
{
    scanf("%d%d%d",&n,&m,&s);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            g[i][j]=inf;
    for(int i=1;i<=m;i++)
    {
        int u,v,w;
        scanf("%d%d%d",&u,&v,&w);
        g[u][v]=min(g[u][v],w);
    }
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++) if(g[i][k]!=inf&&g[k][j]!=inf)
                g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
    for(int i=1;i<=n;i++) g[i][i]=0;
    for(int i=1;i<=n;i++) printf("%d ",g[s][i]);
    printf("\n");
    return 0;
}

后记:这样的博客还真是简单粗暴又好写- -

STM32H743内存告急?手把手教你用CubeMX+FMC外扩32MB SDRAM(W9825G6KH-6) 本文详细介绍了如何在STM32H743上使用CubeMX和FMC外扩32MB SDRAM(W9825G6KH-6),解决内存不足问题。从硬件选型、CubeMX配置到初始化代码实现,提供完整的配置教程和性能优化技巧,帮助开发者高效扩展内存,适用于图形界面和复杂算法处理。 阅读详情

相关推荐

SRAM compiler中 Number of banks 设置

的值时,需要考虑应用的性能需求、功耗要求和面积限制。设计者应根据具体的应用场景选择合适的bank数量,以优化整体系统性能。bank是一种用于分离存储器访问的设计结构,允许同时对不同的存储区域进行读写操作,从而提高存储器的并发访问性能。选项用于指定 SRAM 存储器的 并发存储区域。在 SRAM 编译器中,

hzmscut的博客 1871

图论最短路算法模板

目录最短路算法floydbellman-forddijkstra 最短路算法 floyd 时间复杂度: O(V3) 适用范围: 适用数据量小的题目,程序简单,可求出所有结点间的最短路径,适用带负边权的图,如果存在G[i][i]为负数,则存在负环。 基本思路: 逐个加入节点作为中转点,更新起点到所有点的最短路。 模板: //第一行输入n, m, 后m行输入u, v, w, 求第一个结点到第n个结点距离。(无向图) #include <bits/stdc++.h> using namespace s

ZHurric的博客 343

模型剪枝实战 | Torch-Pruning 库在YOLOv8上的应用指南

本文详细介绍了如何使用Torch-Pruning库对YOLOv8模型进行结构化剪枝,以实现模型“瘦身”。通过DepGraph(依赖图)技术自动处理层间依赖,确保剪枝安全。文章提供了从环境搭建、核心原理理解到完整剪枝流程的实战指南,并强调了剪枝后的微调与性能评估,帮助开发者在保持精度的同时显著提升模型推理速度。

weixin_29046035的博客 503

图论01.最短路专题_学习笔记+模板

图论01.最短路专题_学习笔记+模板 一、定义与性质 ● 需要的前导知识点 路径 最短路 有向图中的最短路、无向图中的最短路 单源最短路、每对结点之间的最短路 ● 最短路的性质 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的结点。 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的边。 对于边权为正的图,任意两个结点之间的最短路,任意一条的结点数不会超过 nnn ,边数不会超过 n−1n-1n−1 。 二、最短路算法与模板 1.Floyd–适用于无负环图的最短路算法 用于求解图中任

HeartFireY的博客 2425

数字IC后端实战:OCC电路时钟树综合的5个关键技巧(附Synopsys工具配置)

本文深入探讨了数字IC后端设计中OCC电路时钟树综合的实战技巧。针对工具自动平衡导致的绕线拥塞和时序问题,文章提出了分段处理的核心思路,并详细阐述了通过物理隔离、分段长树策略以及Synopsys工具链(如ICC2、PrimeTime)的精准配置来优化function clk与occ clk路径的关键方法,旨在提升时序收敛性和可制造性。

jwt8token的博客 855

拆解歌尔2718硅麦:2.75mm超小封装背后的MEMS技术解析

本文深度解析歌尔2718硅麦的2.75mm超小封装技术,探讨MEMS麦克风在微型化过程中的声学性能与结构可靠性平衡。通过ASIC芯片堆叠、纳米级应力控制等创新技术,歌尔2718在TWS耳机和智能手机中实现卓越性能,同时克服微型化带来的声学挑战。

weixin_28292761的博客 610

图论最短路模板

图论最短路模板

jsxhnzl的博客 155

手把手教你编写PCIe设备驱动:基于Linux内核的实战教程

本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。

weixin_30687051的博客 193

图论最短路模板总结

图论最短路模板合集,含Floyd,Dijkastra,SPFA,链式前向星

c_yy_的博客 579

Calibre LVS效率翻倍秘籍:用Hierarchical Flow处理亿级晶体管设计的5个关键阶段

本文详细解析了如何利用Hierarchical Flow技术提升Calibre LVS在亿级晶体管SoC设计中的验证效率。通过五个关键阶段的分层验证流程,包括顶层抽象验证、模块级独立验证等,可显著降低内存占用40-60%,缩短迭代周期50-70%,特别适用于SMIC等先进工艺节点。文章还分享了算力资源优化、并行化处理等实战技巧,帮助工程师应对大规模芯片验证挑战。

sam99的博客 768

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 213

图论之最短路算法模板总结

注意:有负权的可能没有最短路,我们最外面循环了k次,他的含义是最多经过k条边的最短路,因此若循环超过该次数说明有环,这样子就是有负环了,但是有负环不一定说明答案不存在比方说一个与答案路径无关的负环,因此一般无法用该算法判断。同时维护cnt[x]表示当前最短路的边数,我们cnt[x]=cnt[t]+1,若有cnt[x]>=n,说明有了负环。我们让s表示当前已经确定的最短距离的点,我们找到一个不在s中的距离最近的点t,并用t来更新其他的点。实现:循环n次,每一次循环所有边并更新。

cocoack的博客 1198

2023华为od机试C卷【宽度最小的子矩阵】Python 实现

给定一个矩阵,包含N*M个整数,和一个包含K个整数的数组现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。

MISAYAONE的博客 2186

图论 <最短路问题>模板

2.邻接表 (常用)单链表,每一个点都有一个单链表 ,插入一般在头的地方插,特殊的深度优先搜索,难点是如何实现,一条道走到黑。例题 :有向图的拓扑序列。1.邻接矩阵,稠密图。图的邻接表的存储方式。

Marshuo的博客 1662

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

图论之最短路问题(acwing模板篇)

acwing(6)

lihua777的博客 1074

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

图论基础--最短路模板

题目选自ACwing Dijkstra最短路: 给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。 输入格式 第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式 输出一个整数,表示1号点到n号点的最短距离。 如果路径不存在,则输出-1。...

qq_44196094的博客 248

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【算法模板】图论单源|多源最短路

图论算法模板 图论 【模板】dirjkstra单源最短路径 【模板】Bellman-Ford多源最短路 【模板】Spfa求最短路 【模板】Spfa判断负环 【模板】Floya 【模板】Kruskal最小生成树

向往有那么一天梦幻的步态识别落地,开花❀! 1074

最短路图论模板

单源最短路dij O((E+N)logN)O((E+N)logN)O((E+N)logN) int n,m; int dis[N]; int vis[N]; struct node { int to,v; bool operator &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; (const node &amp;amp;amp;amp;amp;amp;amp;amp;amp;a

wyxxzsy的博客 235

模板 - 图论 - 单源最短路

第一次用Markdown编辑器写博文呢。 单源最短路的模板,链式前向星写法。 非负权的单源最短路Dijkstra算法。 Dijkstra #include<bits/stdc++.h> using namespace std; const int INF=0x3f3f3f3f; /* begin 链式前向星 */ const int MAXN=1000010; const int...

weixin_30376453的博客 107

图论模板(最短路、tarjan)

图论模板

Galaxy_Su的博客 504

图论最短路(模板/模板题)

我们目标是从1到5的最短路但是可以发现从2——>3——>4——>2这个环上总和是一个负数每多走一圈距离就变短一次所以这个1——5的最短路为-∞那么怎么判断呢 根据抽屉原理可以得知n个点里任意两个点的任意路程如果不经过重复的点那么边的个数一定小于n 那么可以根据此方法来判断负环 维护一个cnt数组表示从起点到当前点的最短路的边 只要出现一个cnt[i]>n就一定有负环出现值得注意的是 负环不一定从1点可以到达 所以我们要把所有的点都当作起点枚举一下寻找。...

zero_one_fa的博客 508

【洛谷】图论 图论最短路算法全解:从单源 Dijkstra 到多源 Floyd 模板与实战

本文系统梳理图论中两类核心最短路问题:单源最短路与多源最短路。详细讲解基于贪心思想的 Dijkstra 算法(含常规版与堆优化版),以及基于动态规划的 Floyd 插点法,包含算法原理、状态转移、代码实现与边界处理,并提供竞赛模板,帮助读者快速掌握最短路问题的求解思路与工程实现。

2501_90265152的博客 1422

【刷题】图论——最短路:Dijkstra【证明+模板】

文章目录单源最短路边权为正1.1、朴素Dijkstra O(n^2)算法步骤算法证明1.2、堆优化Dijkstra O(mlogn)边权为负2.1、Bellman-Ford O(nm)2.2、SPFA 一般O(m)、最坏O(nm)多源最短路3 Floyd O(n^3) 定义图有:n个点,m条边 单源最短路 边权为正 1.1、朴素Dijkstra O(n^2) 算法步骤 假设起点是st;已经确定到st最短距离的点在集合S中 dis[s]=0,(i≠s)dis[i]=+∞dis[s] = 0, (i\neq

qq_42581685的博客 2093

图论模板-最短路

(1)floyd *时间复杂度O(n^3); *最简单最好记最好打的最短路算法; *可计算任意两点间的最短路; *适合带负权的情况; int dis[10010][10010]; int main() { int n,m,x,y,len; scanf("%d%d",&n,&m); memset(dis,0xffffffff,sizeof(dis)); for (int i=1;

zero_from的博客 353

图论_单源最短路模板

图论

InsiApple的博客 7685
上一篇: 洛谷【P2831】愤怒的小鸟 (NOIP 2016 D2T3)
下一篇: 洛谷【P1725】琪露诺 DP的优化
HFYRKG
博客等级 码龄9年 19粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值