首页 > 其他分享 >【图论】最短路模板

【图论】最短路模板

时间:2023-01-27 12:11:06浏览次数:38  
标签:图论 int 短路 memset vis edge sizeof 模板 dis

SPFA:

inline void spfa(int x){
  memset(dis,0x3f,sizeof(dis));
  memset(vis,0,sizeof(vis));
  dis[x]=0;vis[x]=true;
  Q.push(x);
  while(!Q.empty()){
    int u=Q.front();Q.pop();
    vis[u]=false;
    for(int i=head[u];i;i=edge[i].nxt){
      int v=edge[i].to;
      int w=edge[i].w;
      if(dis[v]>dis[u]+w){
        dis[v]=dis[u]+w;
        if(!vis[v]){
          Q.push(v);
          vis[v]=true;
        }
      }
    }  
  }
}

Dijkstra(堆优化):

inline void Dijkstra(int x){
  memset(dis,0x3f,sizeof(dis));
  memset(vis,0,sizeof(vis));
  dis[x]=0;
  Q.push(make_pair(0,x));
  while(!Q.empty()){
    int u=Q.top().second;Q.pop();
    if(vis[u]) continue;
    vis[u]=true;
    for(int i=head[u];i;i=edge[i].nxt){
      int v=edge[i].to;
      int w=edge[i].w;
      if(dis[v]>dis[u]+w){
        dis[v]=dis[u]+w;
        q.push(make_pair(-dis[v],v));
      }
    }
  }
}

Floyd

inline void Floyd(){
  for(int k=1;k<=n;++k)
    for(int i=1;i<=n;++i)
      for(int j=1;j<=n;++j)
        dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}

自己默写的,应该没什么问题吧

标签:图论,int,短路,memset,vis,edge,sizeof,模板,dis
From: https://www.cnblogs.com/Flandre495/p/17068786.html

相关文章

  • 模板方法设计模式
    模板方法设计模式1.说明核心是:定义一个模板类,在模板类中规定其整体的骨架并确定哪些方法是允许子类可以去重写的,哪些是不允许子类去重写的.用来保证核心算法不被破坏.......
  • 多项式模板
    多项式模板\(\text{导数运算法则}\)$(x\pmy)'=x'\pmy'$$(ax)'=ax'$(\(a\)为常数)\((xy)'=x'y+xy'\)$(\displaystyle\frac{x}{y})=\displaystyle......
  • POJ--3255 Roadblocks(最短路)
    记录0:252023-1-27http://poj.org/problem?id=3255reference:《挑战程序设计竞赛(第2版)》2.4.4p108DescriptionBessiehasmovedtoasmallfarmandsometimese......
  • C++可变参数模板
    template<class...T>voidf(T...args){cout<<sizeof...(args)<<endl;}sizeof...一整个是运算符可以通过递归或逗号表达式方式展开该参数包可以使用这种可......
  • P5858 「SWTR-03」Golden Sword DP+单调队列模板
    P5858「SWTR-03」GoldenSword-洛谷|计算机科学教育新生态(luogu.com.cn) 理解题意后,我们知道贪心和暴力枚举显然是不行的,联想到DP我们设置dp[i][j]表示,第i种......
  • 图的应用(校园导航图最短路径求解)
    ​一、实验要求:设计四川轻化工大学的校园平面图,所含景点不少于8个。以图中顶点表示学校内各景点,存放景点的名称、景点介绍信息等;以边表示路径,存放路径长度信息。要求将这些......
  • go 模板
    template.ParseFiles()实现:funcParseFiles(filenames...string)(*Template,error){returnparseFiles(nil,readFileOS,filenames...)}func(t*Template......
  • 动态规划 背包问题算法模板
    一篇文章吃透背包问题!(细致引入+解题模板+例题分析+代码呈现)  https://leetcode.cn/problems/partition-equal-subset-sum/solution/yi-pian-wen-zhang-chi-tou-bei-b......
  • 基于Laravel9+Vue+ElementUI的管理系统模板源码
    项目介绍一款PHP语言基于Laravel9.x、Vue、ElementUI等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本......
  • 对质数取模结果(扩展欧几里得算法模板)爬树甲壳虫
    问题描述有一只甲壳虫想要爬上一颗高度为 �n的树,它一开始位于树根,高度为 00,当它尝试从高度 �−1i−1 爬到高度为 �i 的位置时有 ��Pi​ 的概率会掉回树根,求它从树根爬......