题目分析
期望( ext{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))。
考虑如何优化。
冷静分析发现,(sumlimits_{i=1}^Tp_{y,i}cdot f_{y,i+t})可以化成卷积形式。
设(g_{y,t}=sumlimits_{i=1}^Tp_{y,i}cdot f_{y,i+t})。
如果我们已知(f_{y,i}(ige t)),那么我们可以(O(mcdot Tcdot log T))算出(f_{y,i}(ige t))对(g_{y,t})的贡献。
如果我们倒着枚举时间(t),边dp边算贡献,每个时间(t)会计算贡献(O(T))次,时间复杂度是(O(mcdot T^2cdot log T))。
考虑分治( ext{fft})。
每次分治区间([l,r]),处理完右区间后,统计右区间对左区间的贡献,再处理左区间。
时间复杂度(O(mcdot Tcdot log T)),可以接受。
有点卡常,需要手写( ext{complex})。