P1529 回家 Bessie Come Home【洛谷算法习题】
P1529 回家 Bessie Come Home网页链接P1529 回家 Bessie Come Home题目描述现在是晚餐时间而母牛们在外面分散的牧场中。Farmer John 按响了电铃所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓在给出的测试数据中总会有且只有一只最快的母牛。在挤奶的时候晚餐前每只母牛都在她自己的牧场上一些牧场上可能没有母牛。每个牧场由一条条道路和一个或多个牧场连接可能包括自己。有时两个牧场可能是字母相同的之间会有超过一条道路相连。至少有一个牧场和谷仓之间有道路连接。因此所有的母牛最后都能到达谷仓并且母牛总是走最短的路径。当然母牛能向着任意一方向前进并且她们以相同的速度前进。牧场被标记为a … z \texttt{a} \ldots \texttt{z}a…z和A … Y \texttt{A} \ldots \texttt{Y}A…Y在用大写字母表示的牧场中有一只母牛小写字母中则没有。 谷仓的标记是Z \texttt{Z}Z注意没有母牛在谷仓中。注意m \texttt{m}m和M \texttt{M}M不是同一个牧场。输入格式第一行一个整数P PP1 ≤ P ≤ 10 4 1\leq P \leq 10^41≤P≤104表示连接牧场谷仓的道路的数目。接下来P PP行每行用空格分开的两个字母和一个正整数被道路连接牧场的标号和道路的长度道路长度均不超过10 3 10^3103。输出格式单独的一行包含二个项目最先到达谷仓的母牛所在的牧场的标号和这只母牛走过的路径的长度。输入输出样例 #1输入 #15 A d 6 B d 3 C e 9 d Z 8 e Z 3输出 #1B 11说明/提示翻译来自 NOCOWUSACO 2.4解题思路本题是多源最短路问题母牛分布在部分大写字母标记的牧场谷仓位于Z。目标是在所有有牛的牧场中找到到达Z最短路径长度及对应的牧场。由于节点数极少最多 52 个牧场采用 Floyd-Warshall 全源最短路直接求解。1. 问题建模节点与边牧场用字母A~Z和a~z标记共52 5252个节点。谷仓是Z。道路是无向边有长度两个牧场之间可能有多条道路取最小值。有牛标记大写的A~Y牧场中可能有一只母牛题目保证至少一只且只有一只最快。Z是谷仓无牛。目标在所有p[i]1即有牛的大写字母节点中找出到Z最短路径的节点及其距离。2. 算法实现初始化邻接矩阵a [ 256 ] [ 256 ] a[256][256]a[256][256]存储任意两点间的最短距离对角线为0 00其余初始化为一个极大值10 8 10^8108。读入与建图读取边数n nn。每行读取两个字母和一个正整数长度。若字母是大写标记p[字母]1。更新a [ A ] [ B ] a[A][B]a[A][B]和a [ B ] [ A ] a[B][A]a[B][A]为当前存储值与输入长度的较小值处理重边。Floyd-Warshall 全源最短路三层循环中间节点k kk起点i ii终点j jj覆盖A到z的所有字母。松弛操作若a [ i ] [ j ] a [ i ] [ k ] a [ k ] [ j ] a[i][j] a[i][k] a[k][j]a[i][j]a[i][k]a[k][j]则更新。寻找最优母牛遍历大写字母A到Y如果该节点有牛且a [ i ] [ ′ Z ′ ] a[i][Z]a[i][′Z′]小于当前最小值更新最小距离m mm和牧场标号h e hehe。输出输出牧场标号和最短距离。3. 复杂度分析时间复杂度Floyd-Warshall 的节点数V 52 V52V52复杂度O ( V 3 ) ≈ 1.4 × 10 5 O(V^3) \approx 1.4 \times 10^5O(V3)≈1.4×105对于P ≤ 10 4 P \le 10^4P≤104条边完全可行。空间复杂度O ( V 2 ) O(V^2)O(V2)邻接矩阵仅需256 × 256 256 \times 256256×256个long long空间极小。总结将字母牧场映射为图的节点无向边带权用 Floyd 算法求出所有牧场间最短路径再遍历有牛的大写牧场取到Z的最小距离者即为答案。注意处理重边取最小值区分大小写节点即可。代码简要说明全局数组a[256][256]邻接矩阵存储最短距离。p[256]标记大写字母牧场是否有牛。初始化与输入所有i≠j的a [ i ] [ j ] a[i][j]a[i][j]初始化为10 8 10^8108。用scanf读取边更新矩阵并标记有牛的节点。Floyd 核心三层循环遍历所有字母更新a[i][j] min(a[i][j], a[i][k]a[k][j])。结果查找与输出遍历A~Y找到有牛且距离Z最短的节点输出字符和距离。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod1e97;ll a[256][256]{0};ll p[256]{0};ll n,i,j,k;charA,B;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);scanf(%lld\n,n);for(iA;iz;i)for(jA;jz;j)if(i!j)a[i][j]100000000;for(i1;in;i){ll haha;scanf(%c %c %lld\n,A,B,haha);if(AAAZ)p[A]1;if(BABZ)p[B]1;a[A][B]min(a[A][B],haha);a[B][A]min(a[A][B],a[B][A]);}for(kA;kz;k)for(iA;iz;i)for(jA;jz;j)if(a[i][j]a[i][k]a[k][j])a[i][j]a[i][k]a[k][j];ll m100000000;charhe;for(iA;iY;i)if((p[i]1)(a[i][Z]m)){ma[i][Z];he(char)i;}couthe mendl;return0;}

相关新闻

AI-Shoujo HF Patch:终极游戏增强补丁完全指南

AI-Shoujo HF Patch:终极游戏增强补丁完全指南

AI-Shoujo HF Patch:终极游戏增强补丁完全指南 【免费下载链接】AI-HF_Patch Automatically translate, uncensor and update AI-Shoujo! 项目地址: https://gitcode.com/gh_mirrors/ai/AI-HF_Patch 你是否正在寻找一款能够彻底改变AI-Shoujo游戏体验的强大工…

2026/8/11 8:31:09 阅读更多 →
Obsidian手写笔记插件终极指南:3步实现PDF自由标注的完整解决方案

Obsidian手写笔记插件终极指南:3步实现PDF自由标注的完整解决方案

Obsidian手写笔记插件终极指南:3步实现PDF自由标注的完整解决方案 【免费下载链接】obsidian-handwritten-notes Obsidian Handwritten Notes Plugin 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-handwritten-notes 你是否经常在Obsidian中阅读PD…

2026/8/15 11:15:40 阅读更多 →
AI开发回归API/CLI:混合架构实践与性能优化

AI开发回归API/CLI:混合架构实践与性能优化

1. 现象观察:AI开发模式的范式转移 过去两年间,包括OpenAI、Anthropic在内的头部AI实验室出现了一个有趣的技术回潮现象:那些曾经全力投入Multi-Chain Processing(MCP)框架的团队,正在将核心业务逻辑逐步迁…

2026/8/16 9:08:21 阅读更多 →

最新新闻

Vue3项目Docker容器化部署:从环境一致性到生产级Nginx配置

Vue3项目Docker容器化部署:从环境一致性到生产级Nginx配置

1. 从“本地跑得通”到“线上稳得住”的鸿沟 作为一名前端开发者,我们最熟悉的场景莫过于在本地 npm run dev 启动一个 Vue3 项目,看着热更新飞快,功能一切正常。然而,当项目需要交付给测试、上线到服务器,或者分享给…

2026/8/16 23:08:34 阅读更多 →
分治算法:从快排到归并排序的实战指南

分治算法:从快排到归并排序的实战指南

会向耀灵淬天剑,剑拔飞刃斩仇雠。欢迎来到丘山望岳的小栈,今天分享分治算法,从熟络的快排归并讲起,话不多说,我们现在发车。 分治思想:把大问题拆成多个相同的小问题分别求解,再把小结果合并得到…

2026/8/16 23:07:33 阅读更多 →
Git Push 报错全解析:从权限认证到历史冲突的排查指南

Git Push 报错全解析:从权限认证到历史冲突的排查指南

1. 问题引入:当 git push 命令突然“罢工” 作为一名开发者,你肯定无数次地敲下 git push 命令,将本地的代码变更同步到远程仓库。这个动作流畅得几乎成了肌肉记忆。然而,就在某个风和日丽的下午,你信心满满地敲下…

2026/8/16 23:07:33 阅读更多 →
DM8 事务隔离级别:默认配置 + MySQL/Oracle 行为差异

DM8 事务隔离级别:默认配置 + MySQL/Oracle 行为差异

一、简介事务隔离是并发数据库核心机制,用来控制多会话同时读写数据时的可见性规则,解决三类并发问题:脏读、不可重复读、幻读。 SQL 标准定义 4 种隔离级别(由低到高): 读未提交 Read Uncommitted 读已提交 Read Committed(RC) 可重复读 Repeatable Read(RR) 串行化…

2026/8/16 23:07:33 阅读更多 →
Git推送失败全解析:从权限冲突到分支合并的实战解决方案

Git推送失败全解析:从权限冲突到分支合并的实战解决方案

1. 项目概述:当“git push”命令不再顺畅 作为一名和代码仓库打了十几年交道的开发者,我敢说,几乎每个使用Git的人,都曾在某个深夜被一句冰冷的“error: failed to push some refs”或者“remote: You are not allowed to upload …

2026/8/16 23:07:33 阅读更多 →
Git Push报错全解析:从权限认证到分支冲突的完整解决方案

Git Push报错全解析:从权限认证到分支冲突的完整解决方案

1. 项目概述:当“推”不动代码时,我们到底在解决什么?作为一名每天要和Git打几十次交道的开发者,我敢说,git push报错是每个程序员成长路上的“必修课”。这绝不是一句简单的命令失败,它背后牵扯到本地仓库…

2026/8/16 23:07:33 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →