当前位置: 首页 > news >正文

洛谷 P1629 邮递员送信 (图论入门)

题目

有一个邮递员要送东西,邮局在节点 1。他总共要送 n−1 样东西,其目的地分别是节点 2 到节点 n。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 m 条道路。这个邮递员每次只能带一样东西,并且运送每件物品过后必须返回邮局。求送完这 n−1 样东西并且最终回到邮局最少需要的时间

输入格式

第一行包括两个整数,nm,表示城市的节点数量和道路数量。

第二行到第 (m+1) 行,每行三个整数 ,u,v,w , 表示从 uv 有一条通过时间为 w 的道路。

输出格式

输出仅一行,包含一个整数,为最少需要的时间。

数据范围

1 ≤ n ≤ 1e3 , 1 ≤ m ≤ 1e5

1 ≤ u,v ≤ n , 1 ≤ w ≤ 1e4

输入保证任意两点都能互相到达。

思路概述

经典的 SPFA 变式。

如果邮递员每次都能够“瞬移”回邮局,那就是简单的单源最短路径。普通的SPFA 秒过。

但邮递员要返回邮局。

暴力思路是用 Dijkstra 扫一遍。但是时间复杂度会爆。

考虑以下思路:因为边的边权恒不变,所以多开一倍空间,把边“倒过来”,这样能变成又一个单源最短路径。只需要再SPFA一遍就行。

注意: 空间最好开两倍,不然容易弄混

代码

#include <bits/stdc++.h>
#define N 1010
#define M 100010
using namespace std;
int n,m,u,v,w,x,ans;
int ver[2*M],edge[2*M],nxt[2*M],tot;
int head[2*N];int d[2*N]; bool vis[2*N];
queue<int> que;int main() {scanf("%d%d",&n,&m);for(int i=1;i<=m;i++) {scanf("%d%d%d",&u,&v,&w);tot++;ver[tot]=v; edge[tot]=w;nxt[tot]=head[u]; head[u]=tot;ver[tot+m]=u+n; edge[tot+m]=w;nxt[tot+m]=head[v+n]; head[v+n]=tot+m;}memset(d,0x3f,sizeof(d));d[1]=0; vis[1]=true;que.push(1);while(!que.empty()) {x=que.front();que.pop(); vis[x]=false;for(int i=head[x];i;i=nxt[i])if(d[ver[i]]>d[x]+edge[i]) {d[ver[i]]=d[x]+edge[i];que.push(ver[i]); vis[ver[i]]=true;}}for(int i=2;i<=n;i++) ans+=d[i];memset(d,0x3f,sizeof(d));memset(vis,false,sizeof(vis));d[n+1]=0; vis[n+1]=true;que.push(n+1);while(!que.empty()) {x=que.front();que.pop(); vis[x]=false;for(int i=head[x];i;i=nxt[i])if(d[ver[i]]>d[x]+edge[i]) {d[ver[i]]=d[x]+edge[i];que.push(ver[i]); vis[ver[i]]=true;}}for(int i=2+n;i<=n+n;i++) ans+=d[i];printf("%d\n",ans);return 0;
}
http://www.jsqmd.com/news/415377/

相关文章:

  • 随便写写 - 2
  • 四轮转向4WS轨迹跟踪控制模型 采用双SMC控制 4WS通过积分滑模控制跟踪期望横摆角速度和质...
  • ESM-AnatTractNet:改进的真实阳性功能性白质束示踪深度学习模型,用于改善小儿癫痫手术术前评估/文献速递-基于深度学习的图像配准与疾病诊断
  • **塑料模板厂家+塑料模具厂家怎么选?内行教你少踩坑、省成本、工程更省心!**--- - 品牌企业推荐师(官方)
  • 哪款识字软件比较好?家长实测评比,幼小衔接刚需闭眼入 - 资讯焦点
  • HTTP 错误 500.21 - Internal Server Error 处理程序“BlockViewHandler”在其模块列表中有一个错误模块“ManagedPipelineHandler”
  • 深圳配镜服务深度调查:从连锁品牌宝岛眼镜看专业检查的硬性标准 - 资讯焦点
  • 不只是“柜子”,更是“堡垒”:一文读懂集宝的防护体系 - 资讯焦点
  • 主标题A:罗小军:GEO不是取代SEO,而是从“抢排名”到“成为答案”的升维 - 资讯焦点
  • 汽车篷布品牌营销战略咨询公司哪家靠谱?奇正沐古 - 资讯焦点
  • 2026年2月南京工厂geo优化公司推荐,制造业专属优化服务指南 - 品牌鉴赏师
  • 我的AI助手一天都在帮我干什么
  • 鲜花大赏
  • 2026年2月南京geo优化获客公司推荐,专注企业精准获客与增长方案 - 品牌鉴赏师
  • 2026年盘点六大地图数据处理工具
  • 我把AI接进微信了附详细操作步骤
  • 持续更新中...
  • 为什么我劝你一定要学会用AI这是我见过最实在的理由
  • 位运算
  • AI帮我写代码一整年后这是我的完整经验总结
  • 如何在Linux下编译带有头文件windows.h的C代码
  • 我是如何用AI来读书的一年读100本的高效方法
  • 水面5种垃圾目标检测数据集(8000+张图片已划分、已标注)| AI训练适用于目标检测任务
  • AI时代我们还需要学编程吗
  • 2026年2月计算机电缆品牌推荐,机房布线专用抗干扰优质品牌 - 品牌鉴赏师
  • 题解:QOJ10706 Red-Blue MST
  • AI帮我写代码这一年我的真实使用感受
  • Luogu P3811 【模板】模意义下的乘法逆元 题解
  • 我是如何用AI来读书的
  • 我是如何让AI帮我管理日程的