poj1511 spfa

邻接表实现 单源最短路径SPFA算法 poj1511 首先讲邻接表的实现,以前一直遇到题目都是用vector模拟,今天遇到一个题目vector超时,于是学习了用数组模拟实现邻接表,新学的数据结构,搞的不是很透彻,记录一下。 其实就是头插发,首先用一个结构体E记录节点的信息,指向那个节点,以及指向节点的权值等信息,给E结构体设置一个next,让它指向H数组,H数组初始化为-1,初始化为-1是为了方便判断某个点直接相连点是否找完了,自己还不是很透彻了, 阅读详情

题意:有N个节点,节点间的道路为单向。求从第一个节点到所有其他节点以及从所有其他节点到第一个节点的最短路之和。

思路:spfa算法。需要建图两次。

#include <stdio.h>
#include <string.h>
#define N 1000005
#define INF 0x3fffffff
int map[N][3];
struct edge{
	int y,w,next;
}e[N];
int first[N],dis[N],visited[N],res[N],q[N];
int n,m,top,T;
void init(){
	int i;
	top = 0;
	memset(visited,0,sizeof(visited));
	memset(first,-1,sizeof(first));
	for(i = 1;i<=n;i++)
		dis[i] = INF;
}
void add(int x,int y,int w){
	e[top].y = y;
	e[top].w = w;
	e[top].next = first[x];
	first[x] = top++;
}
int relax(int a,int b,int w){
	if(dis[a]+w < dis[b]){
		dis[b] = dis[a]+w;
		return 1;
	}
	return 0;
}
void spfa(){
	int i,front,rear;
	front = rear = -1;
	q[++rear] = 1;
	visited[1] = 1;
	dis[1] = 0;
	while(front < rear){
		int pos = q[++front];
		for(i = first[pos];i!=-1;i=e[i].next)
			if(1==relax(pos,e[i].y,e[i].w) && !visited[e[i].y]){
				q[++rear] = e[i].y;
				visited[e[i].y] = 1;
			}
	}
	for(i = 2;i<=n;i++)
		res[i] += dis[i];
}
int main(){
	freopen("a.txt","r",stdin);
	scanf("%d",&T);
	while(T--){
		int i;
		__int64 sum = 0;
		memset(res,0,sizeof(res));
		scanf("%d %d",&n,&m);
		for(i = 0;i<m;i++)//需要两次建图,所以先将图存起来
			scanf("%d %d %d",&map[i][0],&map[i][1],&map[i][2]);
		init();
		for(i = 0;i<m;i++)
			add(map[i][0],map[i][1],map[i][2]);
		spfa();
		init();
		for(i = 0;i<m;i++)
			add(map[i][1],map[i][0],map[i][2]);
		spfa();
		for(i = 2;i<=n;i++)
			sum+=res[i];
		printf("%I64d\n",sum);
	}
	return 0;
}


k8s重装1.28.2+calico+踩坑收集+InPlacePodVerticalScaling 它提供了从镜像构建(通过 Dockerfile)、镜像管理(上传、下载、存储等)、容器创建、运行、网络配置(可以为容器分配自定义的网络,如 bridge 网络、host 网络等)到容器编排(通过 Docker Compose 可以简单地编排多个容器的启动和关联关系)等一整套完整的解决方案。它的核心功能是启动和管理容器的生命周期。sudo apt update这个可以经常用,是来更新软件包的,它不下载,所以没风险,但是经常会报错,别问,问就是某种强大的力量,所以用镜像或者代理或者巴拉巴拉。 阅读详情

相关推荐

操作系统原理:【优麒麟】linux内核添加系统调用

在底端添加如下代码。

Joyce_zz的博客 2710

POJ1511 SPFA Invitation Cards

POJ1511题目连接题意代码 题目连接 [POJ1511](https://vjudge.net/problem/POJ-1511) 题意 就是说从节点1出发然后问从节点1出发到其它各点的花费与其它各点到节点1之和最小 SPFA可以之结果,但是如果用kuangbin的板子,采用向量(邻接表)的话会超时,应当用链式前向星来作为 数据结构 如果链式前向星不太清楚,可以参考以下博客 [链式前向星](https://blog.youkuaiyun.com/weixin_44758733/article/details/10

Bran 200

电磁炉线圈加热仿真全流程:用Ansys Maxwell分析涡流效应与热损耗

本文详细介绍了使用Ansys Maxwell进行电磁炉线圈加热仿真的全流程。通过构建2D轴对称涡流场模型,深入分析了高频下的涡流效应、趋肤效应与热损耗分布,为优化线圈设计、提升加热效率与均匀性提供了量化依据和实用指南。

sss66的博客 967

POJ 1511 Invitation Cards【SPFA】

http://poj.org/problem?id=1511POJ 1511 Invitation Cards大意:求有向图中从源点到每个节点的往返距离和分析: 1.根据题意建立两幅图,分别对应于正向图和反向图 2.分别对正向图和反向图求从源点即题中的1结点出发求単源最短路径, 3. 由2易得,正向图中求得的dis[i]为s到i的最短路,反向图中求得的dis[i]为i到s的最...

a48634331的博客 158

Pytorch入门实战(2)-使用BP神经网络实现MNIST手写数字识别

上一篇:Pytorch入门实战(1) - 实现线性回归 涉及知识点 Pytorch nn.Module的基本使用 Pytorch nn.Linear的基本用法 PytorchVision Transforms的基本使用 Pytorch中DataLoader的基本用法 Pytorch详解NLLLoss和CrossEntropyLoss 如何确定神经网络的层数和隐藏层神经元数量 本文内容 本文将会使用BP神经网络(就是最普通的神经网络)实现一个MNIST手写数据集的实现。话不多说,直接开始。 首先先导入需要的包

iioSnail的博客 6619

大模型——Coze工作流实战:一键生成像素风格视频

本文介绍了如何利用Coze平台工作流生成像素风格心理学短视频的方法。通过创建工作流、设置变量节点、调用大模型生成文案、数据格式化处理、合成音频、生成字幕等步骤,最终实现从输入主题到生成完整视频的自动化流程。文章详细展示了每个节点的具体配置方法,包括提示词编写和数据处理脚本,为读者提供了完整的像素风格视频制作解决方案。

820

poj 1511(SPFA+邻接表)

题目链接:http://poj.org/problem?id=1511 思路:题目意思很简单就是要求源点到各点的最短路之和,然后再求各点到源点的最短路之和,其实就是建两个图就ok了,其中一个建反图。1000000个点和1000000条边,一开始用SPFA+vector怎么都是TLE,然后换成邻接表就过了=.=。 1 #include 2 #include 3 #include

几百个教授的专栏 435

基于YOLOv10的机器人抓取引导系统:从物体检测到精准抓取

python# 数据标注工具简化版import os"""启动标注工具""""""标注单张图像"""print(f"标注图像: {os.path.basename(img_path)}")print("请在图像上绘制抓取矩形框...")# 这里应该实现交互式标注界面# 简化版本直接返回示例标注# 示例标注数据"""保存标注结果"""# 保存为YOLO格式# 转换为YOLO格式。

YOLO 378

[POJ 1511]Invitation Cards[链式前向星][SPFA]

题目链接:[POJ 1511]Invitation Cards[链式前向星][SPFA] 题意分析: 每天从点1都会有n - 1个孩子需要到点2 ~ n去做事。现在给出a - > b的费用,问,每天从2 ~ n这些点来回一趟最少需要多少钱? 解题思路: 考虑本题边的个数和点的个数均 <= 1e6。可以使用SPFA进行操作,使用链式前向星存储图。这里处理来回距离有一个小技巧,spfa可以求得点

闲停 755

「企业级智能体」LangChain4j Multi-Agent:角色分离 + 协同编排实战

在大部分 Java 项目里,“接入大模型Controller 收到一个 question调用大模型接口拿到 answer把结果原样丢回前端这种玩法可以叫「高配搜索框模式一个 Agent 要写 Prompt、要查数据库、还要改写文案,太忙了不同角色(创作者、编辑、审稿人)的职责混在一起,难以维护想复用其中一段能力(比如只要润色)也不方便把大任务拆成多个 “角色清晰的 Agent”,再编排它们像流水线一样协同完成任务。CreativeWriter:负责创作故事。

OFFTime_we的博客 1550

专转本-信息通信技术-笔记

专转本-信息通信技术-笔记

大今野 1366

POJ1511 Invitation Cards —— 最短路spfa

题目链接:http://poj.org/problem?id=1511 Invitation Cards Time Limit:8000MS Memory Limit:262144K Total Submissions:29286 Accepted:9788 Description In the age of...

alince20008的博客 152

YOLOv8【第十二章:数据增强与数据工程篇·第10节】主动学习(Active Learning):如何挑选最有价值的样本进行标注!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 509

POJ 1511 Invitation Cards(SPFA)

POJ 1511 Invitation Cards(SPFA) http://poj.org/problem?id=1511 题意:有一个N个点的有向图,点的编号从1到N.现在要你求从1号点到所有其他点的最短距离S1+ 从所有其他点到1号点的最短距离S2的值. 分析:        求其他点到1号点的最短距离直接建立原图的反向图然后求最短路径即可.        直接利用SPFA求解.注

code 965

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

poj 1511 spfa水题

poj 1511 Invitation Cards

Resurgence_zc的博客 850

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

POJ1511Invitation Cards(国产算法SPFA)

题目大意:给出n个点和n条有向边,求所有点到源点1的来回最短路之和(保证每个点都可以往返源点1) 解题思路:这个数据范围太大,明显的不能用floyd,dijstra,bellman-ford这些算法,用spfa的话也不能用邻接矩阵存,因为点太多了,所以采用spfa的邻接表存储搞定 稍微有点注意的地方是,来回之和只需要将所有的边反向再从1到所有点求最短路就是他们的最短回路,而且这个题

晚风中的自由 563

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

poj1511(第一道spfa)

题目链接:http://poj.org/problem?id=1511                  题目意思:在一个城市中,有P(1-1000000)个站点,并有Q(1-1000000)条路每条路(单向的)连接其中的两个站点,现在在1号站点,要请P-1个员工去每个站点传递一张单子,现在问你这些员工从1号站点出发去每个站点并且返回到1号站点要走过的最短路程!

鸟 的 天 空 714

poj1511 最短路 spfa

// poj1511 最短路 spfa // // Bellman-Ford 队列优化 // // 留个spfa模板,精髓就是不断松弛,并将可能会影响 // 结果的点,如果在队列中不用加,不在就加入。 #include #include #include #include #include typedef long long ll; using name

TIMELIMITE的专栏 716

poj 1511 Invitation Cards && poj 3268 Silver Cow Party (spfa)

两道题类似,这只给出1511的代码。 //poj 1511 /*题意:p个结点,q条单向的路径,1是起点,求1到任意点,并从该点回到1的花费和要最小。 1.点太多了,dijkstra和floyd都不行。2.spfa,注意求返程时,只需把所有路径的起点和终点颠倒。 3.数据很大,不用int,用long long 或者__int64; */ #include #include #i

qqspeed 736

POJ 1511 双向单源最短路 SPFA+邻接表

最近在复习最短路算法 然后今天在看差分约束系统的时候看到了这一题 POJ 1511 题目的大意: 给出n个点和n条有向边,求所有点到源点1的来回最短路之和(保证每个点都可以往返源点1) 题目意思很简单,但是数据规模很大,当时知道数据规模很大,用一般的方法肯定会超时或者其他错误,但是还是用基础的方法写了一遍。 还有就是一地方需要注意,就是这题求的是双向单源,所以还需要考虑一下,处理双向的问题

Hayden‘s Blog 601

POJ 1511 SPFA 模板

/*--------------------- #headfile--------------------*/ #include #include #include #include #include #include #include #include #include #include #include #include #include /*------------

__ElemenT 489

poj 1511 Invitation Cards spfa 邻接矩阵

题目链接:   http://poj.org/problem?id=1511 题目大意:   这道题目比较难理解,我读了好长时间,最后还是在队友的帮助下理解了题意,大意就是,以一为起点,求从一到其他各点的最短回路总和。 解题思路:   解决这个题目有几个容易错的,解决了离ac就不远了^_^。   1:数据范围是1<=边数<=顶点数<=1000000,所以不能用邻接矩阵...

weixin_30242907的博客 125

POJ 1511 SPFA

题目链接 题意:要求1号点到各点的最短路之和,然后再求各点到1号点的最短路之和。 SPFA邻接表存储 #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <vector> using namespace std; co...

flyzer的博客 206

POJ - 1511 Invitation Cards(Dijkstra,Spfa双向最短路)

#include <stdio.h> #include <string.h> #include <queue> using namespace std; const int Max = 1000000+10; int head1[Max],head2[Max],vis[Max],dist[Max]; struct Node { int v; int w; int next; }edge1[Max],edge2[Max]; int n,m,num1,num2; voi

00后的博客 217

poj 1511 SPFA

题意:从1点到所有点的来回最短路的和 解法:lin'shi'xiang'qian'xing

caoyu01 482
上一篇: poj1731 有重复全排列
下一篇: poj 3624 01背包
dumeichen
博客等级 码龄13年 55粉丝 475原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值