CF553E Kyoya and Train
CF553E Kyoya and Train
首先有\(f_{u,j}=min(W_{(u,v)}+g_{(u,v),j})\),然后我们还可以用\(f\)求出\(g\),\(g_{(u,v),j}=\sum_{k=1}^tP_{(u,v),k}f_{v,j+k}\)
我们发现是一个卷积形式,然后每个\(f\)需要从更大的f转移,可以直接暴力卷积复杂度是\(O(nmtlogt)\)
或者我们可以考虑对这一维分治,每次用右区间更新对左区间的\(g\)的贡献,然后递归到\(l=r\)的时候就用\(g\)来计算\(f\),这样做的时间复杂度是\(O(mtlog^2t)\)
但是由于这道题的\(n\)给的非常小所以导致这两种算法的效率实际上差不多,但是分治FFT的算法复杂度和\(n\)无关。