尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

UVa 544 Heavy Cargo

UVa 544 Heavy Cargo
📅 发布时间:2026/6/21 4:56:36

题目描述

题目要求在一个无向图中,找到从起点到终点的路径,使得路径上的最小边权最大(即最大化最小承载重量)。输出这个最大承载重量。

输入格式

每个测试用例第一行包含两个整数nnn(2≤n≤2002 \le n \le 2002≤n≤200)和rrr(1≤r≤199001 \le r \le 199001≤r≤19900)。接下来rrr行,每行两个城市名和一个整数权值(道路承载量)。最后一行两个城市名,表示起点和终点。输入以0 0结束。

输出格式

对于每个测试用例,输出Scenario #x,然后输出最大承载重量,后跟tons,最后输出一个空行。

样例

输入

4 3 Karlsruhe Stuttgart 100 Stuttgart Ulm 80 Ulm Muenchen 120 Karlsruhe Muenchen 5 5 Karlsruhe Stuttgart 100 Stuttgart Ulm 80 Ulm Muenchen 120 Karlsruhe Hamburg 220 Hamburg Muenchen 170 Muenchen Karlsruhe 0 0

输出

Scenario #1 80 tons Scenario #2 170 tons

题目分析

本题的核心是求解“最大瓶颈路径”,即最大化路径上的最小边权。可以使用类似Floyd-Warshall\texttt{Floyd-Warshall}Floyd-Warshall的变体或最大生成树(Maximum Spanning Tree\texttt{Maximum Spanning Tree}Maximum Spanning Tree)求解。

算法

  • 初始时,weight[i][j]\textit{weight}[i][j]weight[i][j]表示iii到jjj的直接边权,若没有边则为000。
  • 对于每个中间点kkk,更新:
    weight[i][j]=max⁡(weight[i][j],min⁡(weight[i][k],weight[k][j])) \textit{weight}[i][j] = \max(\textit{weight}[i][j], \min(\textit{weight}[i][k], \textit{weight}[k][j]))weight[i][j]=max(weight[i][j],min(weight[i][k],weight[k][j]))
  • 最终weight[start][end]\textit{weight}[start][end]weight[start][end]即为答案。

复杂度分析

n≤200n \le 200n≤200,Floyd-Warshall\texttt{Floyd-Warshall}Floyd-WarshallO(n3)=8×106O(n^3) = 8 \times 10^6O(n3)=8×106,可接受。

代码实现

// Heavy Cargo// UVa ID: 544// Verdict: Accepted// Submission Date: 2016-08-10// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intn,r,weight[201][201],cases=0;while(cin>>n>>r,n&&r){map<string,int>cities;string start,end;inttons,count=1;for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)weight[i][j]=weight[j][i]=-1;for(inti=1;i<=r;i++){cin>>start>>end>>tons;if(cities.find(start)==cities.end())cities[start]=count++;if(cities.find(end)==cities.end())cities[end]=count++;if(tons>weight[cities[start]][cities[end]]){weight[cities[start]][cities[end]]=tons;weight[cities[end]][cities[start]]=tons;}}for(intk=1;k<=n;k++)for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)if(weight[i][k]!=-1&&weight[k][j]!=-1)weight[i][j]=max(weight[i][j],min(weight[i][k],weight[k][j]));cin>>start>>end;cout<<"Scenario #"<<++cases<<'\n';cout<<weight[cities[start]][cities[end]]<<" tons\n\n";}return0;}

相关新闻

  • Visual C++运行库修复工具:5分钟快速修复Windows软件启动错误的完整方案
  • 嵌入式GUI开发:emWin指针输入设备驱动开发与校准实战
  • 本地部署大语言模型三步落地:LM Studio+Ollama+Dify工程实践

最新新闻

  • [Django] DisallowedHost突然爆发?ALLOWED_HOSTS=‘*‘为什么没用+中间件根治方案(附代码)
  • Pandas apply() 实战避坑指南:性能、类型与索引三大陷阱
  • 5分钟掌握英雄联盟内存换肤:R3nzSkin终极使用指南
  • LPC21xx/22xx Flash编程与代码保护:ISP/IAP实战与CRP避坑指南
  • LinkSwift:九大网盘直链下载助手,告别限速的本地解析方案
  • 如何永久保存微信聊天记录?WeChatMsg完整指南帮你掌控个人数据

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号