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

CF715B

给定 \(n\) 个点 \(m\) 条边的无向图,以及 \(s, t, L\)。每条边有边权(有些被抹去),你要为每个被抹去的边权赋一个正整数值使得 \(s \rightarrow t\) 的最短路为 \(L\)

\(n, m \le 10^5,L \le 10^9\)

首先把所有未知边权赋为 \(1\),跑一边 dij,判掉无解。

做法一:二分

有一个性质:一条边的边权 \(+1\),最短路 \(+ 0/1\),所以可以二分总共加多少,对于那些不知道的边权按顺序加即可,然后跑 dij 判断最短路是否 \(\le L\)

时间复杂度:\(O(m \log m \log (mL))\)

这个做法运用了一个性质,然后无脑跑就行了。

做法二:调整法

在全 \(1\) 的基础上,设 \(dt_u\) 表示 \(t\)\(u\) 的最短路。

在跑 dij 的过程中,如果枚举的这条边 \((u, v)\)\(ds_u + dt_v + w < L\),手动将 \(w\) 调成 \(L - ds_u - dt_v\),保证这条路不可能得到 \(< L\) 的最短路,同时还存在 \(=L\) 的最短路。所以最后最短路就是 \(L\) 了。

这样子其他 \(dt_u\) 被影响了也没关系,因为被影响的 \(dt_u\) 不可能还构成最短路 \(< L\) 的情况了。。

时间复杂度:\(O(m \log m)\)

正确性有点难理解。

http://www.jsqmd.com/news/34616/

相关文章:

  • [NOIP 2001 提高组] 一元三次方程求解
  • EPnP算法学习随笔
  • 毒盘未转存仅支持在线观看30s
  • P14322 「ALFR Round 11」E 空崎ヒナ 小结
  • AI元人文:理论自省与客观评估
  • [Element Plus 组件库的官方 API 参考文档] 的部分内容的解释
  • ZK笔记
  • 完整教程:《以 Trae 为桥:高效集成豆包 1.6 API 的实践与思考》
  • 完整教程:Labview项目01:标准可配置序列测试框架
  • 20251107
  • 从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题
  • [Python刷题记录]-除自身以外数组的乘积-普通数组-中等
  • Transformer Decoder 中序列掩码(Sequence Mask / Look-ahead Mask) - 详解
  • codeforces
  • P9785 [ROIR 2020] 对常规的斗争 (Day1) 题解
  • 实用指南:超越CNN和Transformer!Mamba结合多模态统领图像任务!
  • Docker镜像建立【MSSQL2022】
  • 闪回咒 | NOIP 2025 游记
  • 灰度发布
  • 【刷题笔记】AT 经典 90 题
  • CF1758E Tick, Tock
  • 深入解析:SciPy傅里叶变换与信号处理教程:数学原理与Python实现
  • CentOS Stream 9编译安装Nginx 1.28 - Leone
  • SQL核心语言详解:DQL、DML、DDL、DCL从入门到实践! - 实践
  • Ubuntu安装JDK与Maven和IntelliJ IDEA - 详解
  • Ubuntu安装JDK与Maven和IntelliJ IDEA - 详解
  • JavaWeb03-Vue
  • 【完结】Weblogic中间件应用服务器
  • 调整包含特定文本的单元格所在的行高
  • javabean和pojo的区别