pat a1003 Bellman-Ford求最短路径

【PAT甲级复习】 专题复习一:最短路径 文章目录1 无负权边的单源最短路径——Dijkstra1.1 邻接矩阵版:适用于V不超过1000的情况,复杂度O(2V22V^22V2)。1.2 邻接表版:复杂度O(V2+EV^2 + EV2+E)1.3 优先队列优化的Dijkstra1.4 记录最短路径1.5 多个标尺如何处理1.5.1 新增边权1.5.2 新增点权1.5.3 求最短路径条数1.6 多个标尺且比较复杂:Dijkstra + DFS1.6.1 Dijkstra默写模板1.6.2 DFS遍历所有最短路径模板2 有负权边的单源最短路径——Bel 阅读详情

题目:

https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376 

#include<cstdio>
#include<cstring>
#include<vector>
#include<set>
#include<algorithm> 
using namespace std;

const int maxv=510;
const int inf=0x3fffffff;

struct Node
{
	int v;
	int dis;
	Node(int _v,int _dis)
	{
		v=_v;
		dis=_dis;
	}
};

vector<Node> adj[maxv];
int n,m,st,ed,weight[maxv];
int d[maxv],w[maxv],num[maxv];
set<int> pre[maxv];

void Bellman(int s)
{
	fill(d,d+maxv,inf);
	memset(num,0,sizeof(num));
	memset(w,0,sizeof(w));
	d[s]=0;
	w[s]=weight[s];
	num[s]=1;
	for(int i=0;i<n-1;i++)
	{
		for(int u=0;u<n;u++)
		{
			for(int j=0;j<adj[u].size();j++)
			{
				int v=adj[u][j].v;
				int dis=adj[u][j].dis;
				if(d[u]+dis<d[v])
				{
					d[v]=d[u]+dis;
					w[v]=w[u]+weight[v];
					num[v]=num[u];
					pre[v].clear();
					pre[v].insert(u);
				}
				else if(d[u]+dis==d[v])
				{
					if(w[u]+weight[v]>w[v])
					{
						w[v]=w[u]+weight[v];
					}
					pre[v].insert(u);
					num[v]=0;
					set<int>::iterator it;
					for(it=pre[v].begin();it!=pre[v].end();it++)
					{
						num[v]+=num[*it];
					}
				}
			}
		}		
	}	
}


int main()
{
	scanf("%d%d%d%d",&n,&m,&st,&ed);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&weight[i]);
	}
	int u,v,wt;
	for(int i=0;i<m;i++)
	{
		scanf("%d%d%d",&u,&v,&wt);
		adj[u].push_back(Node(v,wt));
		adj[v].push_back(Node(u,wt));
	}
	Bellman(st);
	printf("%d %d\n",num[ed],w[ed]);
	return 0;
}

 

使用 Claude Skills 构建专业级 AI Agent:技术实践指南 Claude Skills(也称)是一组基于文件系统的可重用资源包,为 Claude 提供特定领域的专业知识、标准化工作流程和最佳实践。与传统一次性 Prompt 不同,Skills 是持久化、自动触发、支持代码执行的智能模块。让 AI 真正理解并执行你的工作方式。Claude Skills 正在重新定义 AI 助手的边界——从“回答问题”升级为“执行专业工作的能力”。其可组合、可移植、高效、强大的特性,使其成为自动化重复任务、标准化工作流、提升团队效率的理想工具。未来已来。 阅读详情

相关推荐

产品经理必备知识——API接口

在古代,我们的传输信息的方式有很多,比如写信、飞鸽传书,以及在战争中使用的烽烟,才有了著名的烽火戏诸侯,但这些方式传输信息的效率终究还是无法满足高速发展的社会需要。如果你选择允许,app就会根据你的当前位置为你提供更加个性化的一些服务,当然也有一些app拿到你的位置信息做出损害用户利益的行为,所以还是需要谨慎授权。首先,看接口文档的场景一般是自身业务模块需要获取外部的数据,但又不想自己重新开发,寻找外部已经实现的有开放能力的供应商(包含企业内部的)。通过发送请求和响应消息的方式实现程序间的通信。

WBKJ_Noah_的博客 3457

PAT-A1003 Emergency-Bellman-Ford算法

#include<cstdio> #include<cstring> #include<vector> #include<set> #include<algorithm> using namespace std; const int MAXV = 510; const int INF = 0x3fffffff; struct Node{ int v, dis; //v为邻接边的目标顶点,dis为邻接边的边权 Node(int _v, in

weixin_42616171的博客 168

Fluent后台计算中Journal文件的自动化编写与优化实践

本文深入探讨了Fluent在Linux/Unix环境下进行后台计算时,Journal文件的自动化编写与优化实践。Journal文件作为Fluent后台计算的“灵魂”,是实现仿真流程自动化、保证计算可重复性与准确性的关键。文章从基础脚本骨架搭建、命令简写技巧,到进阶的参数化研究与批量计算实现,提供了详实的实战指南,帮助工程师大幅提升仿真效率。

postgres8guard的博客 758

最短路径问题:PAT A1003 Emergency(Dijkstra、Bellman-Ford、SPFA三种方法)

方法一:Dijkstra //算法笔记P378 //考点:Dijkstra #include<bits/stdc++.h> using namespace std; const int MAXN=501; const int INF=1000000000; int n,m,st,ed,G[MAXN][MAXN],weight[MAXN]; int d[MAXN],w[MAXN],...

-知是故人来- 374

JAVA进阶面试题:如何设计一个高并发系统?

如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。 如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题。面试官也绝对不会这样来问你,否则他就是蠢。 假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,高峰期并发量上万,甚至是十万。那么人家一定会仔细盘问你的系统架构,你们系统啥架构?怎么部署的?部署了多少台机器

uuop155的博客 1021

手把手教你学Simulink--基于光伏(PV)系统的建模与仿真场景:-不同天气条件下光伏系统的输出性能分析

本文介绍了使用Simulink和Simscape Electrical工具箱进行光伏系统建模与仿真的完整流程。内容涵盖准备工作、模型构建、仿真分析三大步骤,重点演示了如何模拟不同天气条件(光照强度、温度变化)对光伏输出性能的影响。通过添加PVArray模块、配置参数、设置环境变化条件、连接测量仪器等操作,实现了光伏系统在动态天气条件下的输出特性分析。文章还提供了仿真参数设置建议和结果分析方法,帮助用户理解环境因素与光伏性能的关联性,为光伏系统设计和优化提供参考。

MHD0815的博客 189

PAT (Advanced Level) 1003 Emergency(25 分)

1003Emergency(25分) As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams ...

就当一次路过丶的沙滩 740

TI单芯片毫米波雷达1642demo代码走读(一)

今天我们来实际看下代码。 首先使用CCS软件导入demo工程,工程有两个,一个是ARM的工程,工程名是mmw_mss_16xx;另一个是DSP的工程,工程名为mmw_dss_16xx。我们将这两个工程的主函数打开,分别位于mss_main.c和dss_main.c文件中。 先看mss的主函数,代码如下。我为每行代码都加了中文注释和自己的理解。 int main (void) { Task_Params taskPara...

1万+

全网最全!PAT甲组1003.Emergency (优先队列实现迪杰斯特拉算法,Bellman算法,SPFA)思路与注意点--补充《算法笔记》

A1003 题目链接 个人思路 Dijkstra典型的贪心思想。 本题在Dijkstra算法上增加点权和统计最短路径条数,除了正常实现算法之外,尝试使用优先队列求解,以提高运行效率 但好像优先队列时间还没有正常实现快,不明白怎么回事,但学习一下优先队列实现的思路还是好的 正常实现时间 优先队列实现时间 正常实现代码 #include <bits/stdc++.h> using na...

九筒的博客 438

Android Studio无法启动,Failed to create JVM:error code -1. JVM Path 完美解决方案

Android Studio无法启动,Failed to create JVM:error code -1. JVM Path 完美解决方案。 找到Android studio的启动文件bin目录,把studio64.exe.vmoptions 删除或改名(推荐改名,方便恢复),如果你是32位系统这个文件就是 studio.exe.vmoptions

陈万洲的专栏 4850

交通仿真软件:SUMO_(1).SUMO基础知识

SUMO 中的交通网络由节点(junctions)和边(edges)组成。节点表示交叉口或路网的连接点,边表示连接节点之间的道路。节点:节点文件(.nod.xml)定义了网络中的所有节点。每个节点有一个唯一的 ID 和坐标。</边:边文件(.edg.xml)定义了连接节点的边。每个边有一个唯一的 ID、起点节点 ID 和终点节点 ID。</车辆文件(.vtype.xml)定义了不同类型的车辆。每个车辆类型可以有不同的参数,例如长度、最大速度、加速度等。</

kkchenjj的博客 1432

PAT+CSP例题 最短路径(Dijkstra算法,Bellman-Ford算法) 最小生成树 Prim算法

PAT1018 Public Bike Management 在计算最短路径问题时,实际上计算标尺的最优值可能不仅仅是简单的和,所以一种更好更通用的方式是计算出所有最短路径,再根据路径上的节点信息计算需要的最优值——Dijkstra+DFS。 这就是一个经典的Dijkstra + DFS找最优最短路径的问题,在一般的最短路径找出来之后可能存在第二标尺或者第三标尺,这个题目中就是从车辆管理中心发出和收回的车辆数。有的情况下最优路径的选择可以在Dijkstra里就完成比较,但是像此题需要输出最优路径的,还是先

Bourne的博客 6566

YOLOv11改进 | Neck篇 | 独创HFPN利用分层特征融合块HFFB模块融合多层次特征改进yolov11(全网独家创新)

本文给大家带来的最新改进是利用分层特征融合块HFFB创新yolov11的neck部分我称之为HFPN,这个模块可以融合局部特征、全局特征、中间特征将三种特征融合在一起辅助yolov11进行检测,经过我的设计分为三种可以针对大目标、小目标、标准目标的检测方式均不同,大家可以根据自己的数据集进行不同的选择,本文的内容为我独家创新。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、原理介绍三、核心代码四、添加方法4.1 修改一4.2 修改二4.3 修改三4.4 修改四。

Snu77的博客 5218

PAT A1003 Emergency

一、题目大意 PAT A1003 给出 n 个城市,m 条无向边,每个城市都有一定数目的救援小组,所有边的边权已知。现在给出起点和终点,求最短路径的条数以及最短路径上的救援小组数目之和。如果有多条最短路径,则输出数目之和最大的。 二、解题思路 使用 dijkstra 最短路径算法,本题在求解最短路径的同时需要求解另外两个信息:最短路径条数和最短路径上的最大点权之和,只需要在更新 d[v] 的...

Armstrong的博客 336

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

最短路径:Bellman-Ford算法

Dijkstra算法可以很好地解决无负权图的最短路径问题,但要是出现了负权边就会失效,这时应该使用Bellman-Ford算法(BF算法),可以解决单源最短路径问题,也可以处理有负权边的情况。

Del Piero的博客 685

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Bellman-Ford算法——带负边图的最短路径算法

这个算法是通过一轮一轮的遍历,如果有负环使最短路径更小,那么就更新。 核心代码: #include <stdio.h> #include <vector> using namespace std; struct Node{ int v,dis; }; vector<Node>Adj[maxn]; int n; int d[maxn]; bool Bell...

晴空 381

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PAT 甲级题目讲解:1003《Emergency》

本文详细讲解 PAT 甲级 1003《Emergency》题目的解法。该题要求在带权无向图中求解从起点到终点的**最短路径数量**,以及所有最短路径中能召集的**最大救援队总数**。文章采用 **Dijkstra 算法** 作为核心框架,扩展维护 `cnt[]`(路径计数)与 `maxr[]`(最大点权和)两个状态数组,并提供链式前向星建图、完整 C++ 代码、常见错误总结与复杂度分析。

qq_35624947的博客 1201

【有负权边的最短路问题】- Bellman-Ford算法

文章目录Bellman-Ford算法 Bellman-Ford算法 可以解决单源最短路问题 也可以处理有负权边的情况 考虑环 零环和正环的存在不能使最短路径更短; 如果图中有负环且从源点可以到达,那么就会影响最短路径的求解。 ...

圣托里尼的日落啊~的博客 2686

PAT A1003 Emergency (25分)【单源最短路径模板题】

目录疑问代码反思参考文档 今天也是为了cc,努力奋斗的一天ヾ(≧▽≦*)o 疑问 暂无 代码 #include<stdio.h> #include<algorithm> using namespace std; //最大的点的数量 const int MAXV = 1010; //定义不可达时的距离 const int INF = 1000000000; ...

yc_cy1999的博客 218

PAT-ADVANCED1003——Emergency

我的PAT-ADVANCED代码仓:https://github.com/617076674/PAT-ADVANCED 原题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376 题目描述: 题目翻译: 1003 急救 作为一名城市的急救队队长,提供给你一份你所在地区的特殊地图。...

清风阁 386

【PAT A1003】 Emergency

As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked

zxc0074869的博客 151

A1003 Emergency_Bellman(25)

#include<cstdio> #include<algorithm> #include<vector> #include<queue> #include<set> #include<cstring> #include<string> using namespace std; struct Node{ int ...

不管风雨有多少丶的博客 135

pat甲级1003 单源最短路径问题

dijkstra算法写法固定。中间犯了一个低级错误,N是多个地方都用到的边界数据,尽量不要改变N的值,比如while(N–) #include <cstdio> #include <climits> #include <algorithm> const int maxc = 500; const int INF = INT_MAX; int N, M, C1...

sinat_37517996的博客 185

【PAT】1003 Emergency——单源最短路径Bellman_ford算法(第二标尺)

#include <iostream> #include <vector> #include <set> #define MAXN 510 #define MAXDATA 1000000000 using namespace std; struct Node { int v;//邻接顶点 int dis;//邻接边权 Node(int _v,int _dis):v(_v),dis(_dis){} }; vector<Node...

fftx_00的博客 158

PAT (Advanced Level) Practice 1003(Bellman-Ford)

1003 Emergency (25 分) As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams...

g28_gerwulf的博客 250
上一篇: Bellman-Ford算法求最短路径
下一篇: SPFA算法求最短路径
Estrellas_
博客等级 码龄9年 273粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值