Loading

跑路

思路

问题转化为

对于一个有向图, 求 \(1 \to n\) 路径中, 权值之和的二进制中 \(1\) 最少的数

那么怎么办呢?

注意到 \(n \leq 50\) , 很可以乱搞

我们考虑将可以走一条长为 \(2 ^ k\) 次方的路径到达的 \(s \to t\) 连上边, 这样我们就可以轻松的跑最短路即可

而可以走一条长为 \(2 ^ k\) 次方的路径显然是可以用倍增处理的

总结

这道题的思维过程有待加强

容易发现答案的构造在二进制下应当是 \(1010110\) 这样的, 考虑为什么会有这么多个 \(1\) , 其实就是有些点不能以 \(2 ^ k\) 的路径到达

倍增 \(\rm{trick}\)

posted @ 2024-12-13 09:05  Yorg  阅读(6)  评论(0编辑  收藏  举报