[ACM常用模板合集]

#include<iostream>
#include<queue>
#include<algorithm>
#include<set>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<bitset>
#include<cstdio>
#include<cstring>
#define Swap(a,b) a^=b^=a^=b
#define cini(n) scanf("%d",&n)
#define cinl(n) scanf("%lld",&n)
#define cinc(n) scanf("%c",&n)
#define cins(s) scanf("%s",s)
#define coui(n) printf("%d",n)
#define couc(n) printf("%c",n)
#define coul(n) printf("%lld",n)
#define speed ios_base::sync_with_stdio(0)
#define Max(a,b) a>b?a:b
#define Min(a,b) a<b?a:b
#define mem(n,x) memset(n,x,sizeof(n))
#define INF  0x3f3f3f3f
#define maxn  100010
#define Ege 100000000
#define Vertex 1005
#define esp  1e-9
#define mp(a,b) make_pair(a,b)
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
struct Node
{int to, lat, val; //边的右端点,边下一条边,边权
};
Node edge[1000005];
int head[1005],tot,dis[1005],N,M,vis[1005];
void add(int from, int to, int dis)
{edge[++tot].lat = head[from];edge[tot].to = to;edge[tot].val = dis;head[from] = tot;}
void spfa(int s)
{memset(dis, 0x3f, sizeof(dis));dis[0]=0;memset(vis, 0, sizeof(vis));vis[s] = 1;dis[s] = 0;queue<int>Q;Q.push(s);while (!Q.empty()) {int u = Q.front();Q.pop();vis[u] = 0;for (int i = head[u];i;i = edge[i].lat) {int to = edge[i].to;int di = edge[i].val;if (dis[to]>dis[u] + di) {dis[to] = dis[u] + di;if (!vis[to]) {vis[to] = 1;Q.push(to);}}}}}
int main()
{int t, x;scanf("%d", &t);while (t--){memset(head, 0, sizeof(head));cini(N),cini(M);while (M--){int a, b, dis;scanf("%d %d %d", &a, &b, &dis);add(a, b, dis),add(b,a,dis);}cini(x);spfa(x);}return 0;
}

图论--最短路--SPFA模板(能过题,真没错的模板)相关推荐

  1. 洛谷P1346-电车【日常图论,最短路,SPFA】

    题目 一个有向图,每个点有个默认方向和若干个其他方向,走默认方向权值为0,其他方向权值为1,求最短路 输入 3 2 1(3个点,点2到点1) 2 2 3(2个点,起点为1,2为默认点,3为其他点) 2 ...

  2. 图论--最短路--SPFA

    SPFA算法(shortest path faster algorithm)算法是西南交通大学段凡丁于1994年发表的,它在Bellman-ford算法的基础上进行了改进,使其在能够处理待负权图的单元 ...

  3. 洛谷P2296-寻找道路【日常图论,最短路,SPFA】

    题目 一个有向图,要求满足要求的最短路径,要求为: 路径上的所有点的出边所指向的点都直接或间接与终点连通. 输入1 3 2 (3个点,2条边) 1 2 (1和2之间可以连接) 2 1 1 3 (从1到 ...

  4. 图论最短路:Bellman-Ford与其优化SPFA算法的一点理解

    文章目录 前言 一.对Bellman-Ford的深入理解 1. Bellman-Ford有什么用? 2. 什么是松弛操作? 3. Bellman-Ford的k次迭代意义? 4. 一个重要定理 5. 对 ...

  5. 【阿良的算法之路】图论最短路算法模板

    图论: [阿良的算法之路]图论最短路算法模板 [模板]dirjkstra单源最短路径 [模板]Bellman-Ford多源最短路 [模板]Spfa求最短路 [模板]Spfa判断负环 [模板]Floya ...

  6. 【挑战程序设计】- 2.5 图论(最短路、最小生成树)

    2.5 图论(最短路.最小生成树) 文章目录 2.5 图论(最短路.最小生成树) 2.5.1 定义们 2.5.2 图的表示 2.5.3 图的搜索 2.5.4 最短路问题 单源1:bellman-for ...

  7. LeetCode刷题:滑动窗口模板以及典型例题

    作者:fuxuemingzhu 链接:https://leetcode-cn.com/problems/max-consecutive-ones-iii/solution/fen-xiang-hua- ...

  8. 洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA

    洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA 二分交费最多的一次的钱数 然后只将符合要求的边加入图中 如果到终点的最短路大于等于血量 或者直接起点不能到达终点 那么说明不符合要求 需要 ...

  9. bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集

    bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集 1.这道题我们主要就是要求出距离一个油站的最近的油站 首先我们dijkstra 求出任意一个点到 离他最近的油站的距离 2. ...

最新文章

  1. python websocket 客户端_aiohttp Websocket客户端和HTTP
  2. arcgis python脚本实现从界面选择输入输出_arcgis python脚本实现从界面选择输入输出_ArcGIS Python编程案例(2)-使用ArcPy编写脚本......
  3. 《架构师(“拥抱2015”特刊)》发布
  4. 区块链随想:共识不等于信用
  5. Linux怎么处理binray文件,Linux下如何反汇编arm raw binary文件
  6. c++【深度剖析shared_ptr】
  7. 领航机器人广告段子_医院机器人物流广告词_段子网收录最新段子
  8. 四款新旗舰即将发布:小米10和iPhone9领跑,价格惊喜
  9. sqlyog备份数据和导入备份数据
  10. c++ 11 新特性讲解大全
  11. Python练习题和答案
  12. Java数据库课程设计-招聘人才管理系统
  13. 开关电源基础知识(上)_拓扑类型、效率与输入输出及占空比的关系
  14. Sql三张表的连接查询
  15. 手机群控系统电脑/手机硬件配置相关测试参数
  16. 微商怎么做推广加好友?教你几招,让你天天涨粉
  17. 魔方优化大师 v5.15 中文绿色版
  18. 计算机课程表怎么制作,制作我的课程表(教案)
  19. 易语言新手入门教程第十五课 - QQ自动登录器第三部分
  20. 关于win10系统中谷歌浏览器崩溃的问题

热门文章

  1. 西门子cpu指示灯含义_西门子S7200仿真软件如何使用?
  2. PHP中单引号和双引号到底有啥区别
  3. 浅谈关于nil和 null区别及相关问题
  4. MyGeneration学习笔记(5) :在Web Service中使用dOOdad(中)
  5. 《Spring揭秘》——IOC梳理2(容器启动,bean生命周期)
  6. 修改Linux系统日期与时间date clock
  7. 读《代码整洁之道》前四章浅显印象 和 我所见的不整洁代码引以为戒
  8. “拯救网站运维经理赵明”有奖方案征集启事
  9. mediarecorder路径设置为localsocket_[基础教程]-04 NanUI 启动器 Bootstrap 的设置
  10. Ant找不到rt.jar