題目
由於沒找到原題, 只能掛上 pdf
題目下載
演算法(事實上不是最優)
標準的 dp + 圖論(可是考前並沒有聽說過)
於是推出式子
定義 \(dp_{u, g}\) 為從起點到 \(u\), 經過的邊權的最大公倍數為 \(g\) 的最短路
\[dp_{v, g^{\prime}} = \min_{exist (u \rightarrow v)}(dp_{u, g})
\]
轉移時顯然只能從出邊中找, 並且由於不是 DAG, 需要想辦法收斂狀態
於是想到 spfa 跑一遍 (不知道這種情況下 spfa 是死是活, 疑似有利用 dp 單調性的更優演算法)
程式碼
總結
一類套路題
之前居然沒見過