【模板】链式前向星+spfa
洛谷传送门——分糖果
博客——链式前向星
团队中一道题,数据很大,只能用链式前向星存储,spfa求单源最短路。
可做模板。
#include <cstdio> #include <queue> #include <cstring> #include <algorithm>using namespace std;int n, p, c, ans, cnt; long long m; struct node {int to, next; }edge[5000001]; int dis[5000001], head[500001], x, y; bool vis[5000001];void spfa() {int i, j;queue <int> q;memset(dis, 0x7f, sizeof(dis));dis[c] = 1;vis[c] = 1;q.push(c);while(!q.empty()){i = q.front();q.pop();vis[i] = 0;for(j = head[i]; j >= 0; j = edge[j].next)if(dis[edge[j].to] > dis[i] + 1){dis[edge[j].to] = dis[i] + 1;if(!vis[edge[j].to]){q.push(edge[j].to);vis[edge[j].to] = 1;}}} }int main() {int i, j;scanf("%d %d %d", &n, &p, &c);scanf("%d", &m);memset(head, -1, sizeof(head));for(i = 1; i <= p; i++){scanf("%d %d", &x, &y);edge[cnt].to = y;edge[cnt].next = head[x];head[x] = cnt++;edge[cnt].to = x;edge[cnt].next = head[y];head[y] = cnt++;}spfa();for(i = 1; i <= n; i++) ans = max(ans, dis[i]);printf("%lld", ans + m);return 0; } 复制代码
View Code
转载于:https://www.cnblogs.com/zhenghaotian/p/6654805.html
【模板】链式前向星+spfa相关推荐
- 图论:SPFA 算法详解( 算法竞赛入门到进阶) HDU 2544 链式前向星 【提供ACM模板+图解,不会都难!】
文章目录 SPFA简介 链式前向星介绍 SPFA算法思路详细 模板-链式前向星 参考书籍:算法竞赛入门到进阶 罗勇军 SPFA简介 用队列处理Bellman-Ford算法可以很好地优化,这种方法叫做S ...
- 图论部分模板(基于链式前向星的存储方式)
图论篇部分模板(基于链式前向星的存储方式) 你还在为暴力枚举复杂度太高而苦恼吗?你还在为DP而痛苦吗?你还在为搜索剪枝而绞尽脑汁吗?选择链式前向星吧,链式前向星--专注存图20年 . 1. 链式前向星 ...
- Day 7 A - Age of Moyu HDU 6386 | 最短路 | SPFA | 链式前向星
松弛:原来用一根橡皮筋连接p和w两点,现在有一点v到w的路径更短,现在把橡皮筋w点的另一端p换成v点,这样缓解橡皮筋紧绷的压力,让其变得松弛. 来自:原博 关于SPFA算法 来自:原博 链式前向星 # ...
- 链式前向星模板 建图+dfs+bfs+dijkstra
边没有用struct封装起来,节点和边的计数起点如果不符合习惯可以稍作修改 建图+DFS+BFS #include <cstdio> #include <cstring> #i ...
- U81206:链式前向星模板题
[题目来源] https://www.luogu.com.cn/problem/U81206 [题目描述] 链式前向星模板题. 读入n个点,m条边,以及flag.若flag==1,则图有向,否则无向. ...
- spfa(链式前向星)+dijkstra(链式前向星)
链式前向星 链式前向星可以存图, 它存图的方式是: 将任意一个节点的所有临边按输入顺序依次连接起来将任意一个节点的所有临边按输入顺序依次连接起来将任意一个节点的所有临边按输入顺序依次连接起来 然后头节 ...
- 前向星和链式前向星(详解+模板)
前向星和链式前向星 参考博客:深度理解链式前向星 什么是前向星 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的 ...
- P3366 【模板】最小生成树(链式前向星,prim,有坑)难度⭐⭐
题目链接 输入: 4 5 1 2 2 1 3 2 1 4 3 2 3 4 3 4 3 输出: 7 链式前向星相比于矩阵,遍历的代码更加复杂一点,但是省空间,这道题用矩阵存就MLE,只能用链式前向星存. ...
- 【邻接表存图模板】vector邻接表、数组邻接表、链式前向星
一.目录 一.目录 二.前言 三.邻接表"详解" (一)边的信息 (二)几种邻接表的实现方法"详解" 1.数组邻接表 代码 2.vector邻接表 代码 vec ...
最新文章
- ORA-08002: sequence MySeq.currval is not yet defined in this session
- poj2987最大权闭包(输出最少建塔个数)
- 【第一行代码笔记】(一)
- Android复习12【广播接收者-BroadcastReceiver(简单案例-发送广播、静态注册、动态注册、本地广播、代码示例(别处登陆踢用户下线)、常用系统广播总结、音乐播放器)】
- jmeter进行https协议的测试
- Linux破解系统管理员密码
- 小红书最新用户量数据_小红书估值高达60亿美元?小红书超过蘑菇街了吗?
- linux文件系统及bash基础特性
- 小程序开发(5)-之封装组件
- linux配置sftp-server,Ubuntu Server如何配置SFTP(建立用户监狱)
- hdu3359 Kind of a Blur
- ubuntu 12.04 ubuntu System program problem detected 解决方法
- python条形码_python3转换code128条形码
- 怎样设置有道词典屏幕取词后自动翻译?
- 数据驱动的综合能源系统
- (附源码)小程序 记账微信小程序 毕业设计 180815
- [个人笔记] vCenter回收活跃虚拟机的剩余可用空间
- day8--socket回顾
- python中扑克牌类设计_基于Python实现扑克牌面试题
- 【lua/aviutl】游戏对话框效果