CF 553E Kyoya and Train
阿新 • • 發佈:2018-11-28
題目分析
期望\(\text{dp}\)。
設\(f_{i,j}\)表示在第\(j\)個時刻從\(i\)點出發,到達終點的期望花費。
有轉移方程:
\[ f_{x,t}=\min_{(x,y)\in E}(c_{x,y}+\sum_{i=1}^Tp_{y,i}\cdot f_{y,i+t}) \]
如果直接轉移,時間複雜度是\(O(n \cdot T^2)\)。
考慮如何優化。
冷靜分析發現,\(\sum\limits_{i=1}^Tp_{y,i}\cdot f_{y,i+t}\)可以化成卷積形式。
設\(g_{y,t}=\sum\limits_{i=1}^Tp_{y,i}\cdot f_{y,i+t}\)
如果我們已知\(f_{y,i}(i\ge t)\),那麼我們可以\(O(m\cdot T\cdot \log T)\)算出\(f_{y,i}(i\ge t)\)對\(g_{y,t}\)的貢獻。
如果我們倒著列舉時間\(t\),邊dp邊算貢獻,每個時間\(t\)會計算貢獻\(O(T)\)次,時間複雜度是\(O(m\cdot T^2\cdot \log T)\)。
考慮分治\(\text{fft}\)。
每次分治區間\([l,r]\),處理完右區間後,統計右區間對左區間的貢獻,再處理左區間。
時間複雜度\(O(m\cdot T\cdot \log T)\),可以接受。
有點卡常,需要手寫\(\text{complex}\)