SCOI2009 粉刷匠 · 2024-11-23 · # 动态规划 # 题解 设 gj,kg_{j,k}gj,k 表示当前这一行前 jjj 个格子粉刷 kkk 次得到的最大价值。 设 fi,jf_{i,j}fi,j 表示前 iii 行粉刷 jjj 次得到的最大收益。 gj,k=maxp=1j{fp−1,k−1+max(sj−sp−1,j−p+1−sj+sp−1)}fi,j=maxk=1min(j,m)fi−1,j−k+gm,k\begin{array}{} g_{j,k}=\max\limits_{p=1}^j\{f_{p-1,k-1}+\max(s_{j}-s_{p-1},j-p+1-s_{j}+s_{p-1})\} \\ f_{i,j}=\max\limits_{k=1}^{\min(j,m)}f_{i-1,j-k}+g_{m,k} \end{array} gj,k=p=1maxj{fp−1,k−1+max(sj−sp−1,j−p+1−sj+sp−1)}fi,j=k=1maxmin(j,m)fi−1,j−k+gm,k 时间复杂度为 O(nm2)O(nm^2)O(nm2)。