跑路
思路
问题转化为
对于一个有向图, 求 \(1 \to n\) 路径中, 权值之和的二进制中 \(1\) 最少的数
那么怎么办呢?
注意到 \(n \leq 50\) , 很可以乱搞
我们考虑将可以走一条长为 \(2 ^ k\) 次方的路径到达的 \(s \to t\) 连上边, 这样我们就可以轻松的跑最短路即可
而可以走一条长为 \(2 ^ k\) 次方的路径显然是可以用倍增处理的
总结
这道题的思维过程有待加强
容易发现答案的构造在二进制下应当是 \(1010110\) 这样的, 考虑为什么会有这么多个 \(1\) , 其实就是有些点不能以 \(2 ^ k\) 的路径到达
倍增 \(\rm{trick}\)