AtCoder Regular Contest 102 D - All Your Paths are Different Lengths
これは流石に解きたかった
解法
- 頂点から頂点に長さの辺と長さの辺を張る
とすると、経路長からのパスが1本ずつできます。
まずはこれでパスの最大長さをを超えない最大まで持って行きましょう。そこから、
- 頂点から頂点に長さ の辺を張る
とすると、パスの最大長さがだけ更新されることがわかります。したがって、の二進数における各桁を取り出しながら、適切に辺を張り最大長さを更新していけばよいです。