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

题解:洛谷 P1396 营救

【题目来源】

洛谷:P1396 营救 - 洛谷

【题目描述】

妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小明被带到了 \(t\) 区,而自己在 \(s\) 区。

该市有 \(m\) 条大道连接 \(n\) 个区,一条大道将两个区相连接,每个大道有一个拥挤度。小明的妈妈虽然很着急,但是不愿意拥挤的人潮冲乱了她优雅的步伐。所以请你帮她规划一条从 \(s\)\(t\) 的路线,使得经过道路的拥挤度最大值最小。

【输入】

第一行有四个用空格隔开的 \(n\)\(m\)\(s\)\(t\),其含义见【题目描述】。

接下来 \(m\) 行,每行三个整数 \(u, v, w\),表示有一条大道连接区 \(u\) 和区 \(v\),且拥挤度为 \(w\)

两个区之间可能存在多条大道

【输出】

输出一行一个整数,代表最大的拥挤度。

【输入样例】

3 3 1 3
1 2 2
2 3 1
1 3 3

【输出样例】

2

【算法标签】

《洛谷 P1396 营救》 #图论# #二分# #并查集# #最短路# #生成树# #福建省历届夏令营#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 10005;        // 最大节点数
const int M = 20005;        // 最大边数int n, m, s, t;             // n:节点数, m:边数, s:起点, t:终点
int p[N];                   // 并查集数组// 边结构体:存储边的两个端点和权重
struct Edge
{int a, b, w;            // a:起点, b:终点, w:权重// 重载小于运算符,用于按权重排序bool operator< (const Edge &t) const{return w < t.w;}
} e[M];                     // 边数组/*** 并查集查找操作(带路径压缩)* @param x 要查找的节点* @return 节点x的根节点*/
int find(int x)
{if (p[x] != x){p[x] = find(p[x]);  // 路径压缩}return p[x];
}int main()
{// 输入节点数、边数、起点、终点cin >> n >> m >> s >> t;// 输入所有边的信息for (int i = 1; i <= m; i++){int u, v, w;cin >> u >> v >> w;e[i] = {u, v, w};}// 将边按权重从小到大排序sort(e + 1, e + m + 1);// 初始化并查集,每个节点独立成集合for (int i = 1; i <= n; i++){p[i] = i;}int ans = -1;  // 存储结果:从s到t路径上的最大边权// 使用Kruskal算法思想构建最小生成树for (int i = 1; i <= m; i++){int a = find(e[i].a);      // 查找起点所在集合int b = find(e[i].b);      // 查找终点所在集合int w = e[i].w;            // 当前边的权重// 如果两个端点不在同一个连通分量中if (a != b){p[a] = b;              // 合并两个连通分量ans = max(ans, w);      // 更新路径上的最大边权// 检查起点和终点是否连通if (find(s) == find(t)){break;              // 如果连通,提前退出循环}}}// 输出从s到t路径上的最大边权cout << ans << endl;return 0;
}

【运行结果】

3 3 1 3
1 2 2
2 3 1
1 3 3
2
http://www.jsqmd.com/news/394948/

相关文章:

  • 从0学习pwn【第一章】PWN学习环境搭建
  • 负债逾期别乱投医!2026正规债务协商规划机构排行榜,上岸党实测推荐 - 代码非世界
  • 题解:洛谷 P1194 买礼物
  • 避免提示设计踩雷的秘诀:提示工程架构师的用户流程测试风险评估
  • 免费白嫖可灵+阿里顶级AI,图片视频随便生!不限量
  • 大语言模型在AI原生应用领域的未来展望
  • 题解:洛谷 P3366 【模板】最小生成树
  • 大数据领域数据服务的人工智能算法优化
  • 【每日一题】LeetCode 696. 计数二进制子串
  • 信用卡逾期不用慌!全国专业贷款协商与逾期处理律所实测推荐,负债人上岸指南 - 代码非世界
  • 关于本人发布的应用的隐私策略
  • 股市赚钱学概论:赚钱理之一,赚红利的钱
  • 大数据领域数据工程的边缘计算数据处理方案
  • ANSYS/LS-DYNA 隧道光面爆破数值模拟(CAD+LS-DYNA)课程说明:模型建立、...
  • 我用 AI 写了四五个软件之后的总结
  • 测试一下32位CPU和64位CPU下的long类型变量大小
  • 《解析AI应用架构师眼中人机协作在未来工作的独特优势》
  • 大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(车之家)完整教程:从入门到实战部署
  • 企业微信协议接口的安全合规性设计与审计实践 - 教程
  • 意义的主权:AI元人文视域下的古典智慧重释与AI时代的人类责任
  • 2025年GPU算力租赁市场总结
  • 高级java每日一道面试题-2025年7月10日-基础篇[LangChain4j]-如何集成多个不同的 Model Provider(如同时使用 OpenAI 和本地模型)?
  • 城市交通流量实时采集与拥堵预测系统设计
  • 微信小程序Python运动健身户外运动体能训练系统
  • 互联网大厂Java面试场景:音视频与微服务技术深度解析
  • 微信小程序Python英语学习小助手的设计
  • 战略洞察:小略AI转型与科技突破
  • 微信小程序Python英语在线学习系统每日签到打卡
  • 微信小程序Python油画插画绘画投票系统