2022.7.21 闲话
寻找自我真的很难。
认识自我也真的很难。
已经快一年了,
却还是难以承认闲话找不到题材的事实。
也不是不承认,但是,我真的有必要写闲话吗?
不写闲话对别人会有任何影响吗?
不会。
有时不明白自己为什么还这么在意闲话。
闲话?
也许确实没用吧。
真实原因:模拟赛 too difficult to me,没闲话题材力 .
看错时间了 QAQ
不想写闲话了……放一道趣味题吧(来自 PA 2019)
Floyd-Warshall
给一个有向有权图 \(G\),问使用如下循环方式计算的最短路有多少对错误:
for (i : [1, n]) for (j : [1, n]) for (k : [1, n]) chkmin(G[i][j], G[i][k] + G[k][j])
(即 \(i-j-k\) 顺序的 Floyd 算法)
\(n\le 10^3\),\(m\le 3\times10^3\) .
首先用 Johnson 算法算出全源最短路,只需要 \(\Theta(nm\log m)\),我们发现一对点对算得是对的当且仅当下面其中一个成立:
- \(u,v\) 没有路径
- \(u,v\) 的直接连边是最短路径
- 在处理 \(u, v\) 之前,存在一个点 \(w\),使得 \(d(u,v)=d(u,w)+d(w,v)\),且 \(u,w\) 和 \(w,v\) 间的最短路已经正确计算出了 .
所有满足条件的 \(w\) 可以在最短路 DAG 上传递闭包算出,那么我们只需要按顺序额外维护每个点到哪些点的距离,以及哪些点到这个点是被正确计算的即可,这个可以 bitset .
总时间复杂度 \(\Theta(nm\log m+mn^2/w)\) .
UPD. 做法来自 EI .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/16503583.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ