给一个N∗MN*MN∗M的矩阵,给K≤MK≤MK≤M,要求以每行的某个点为左上角选一个2∗K2*K2∗K的子矩阵,使得所有选出的子矩阵覆盖的值之和最大。(N≤50,M≤20000)(N≤50,M≤20000)(N≤50,M≤20000)
上课时老师就说:
f[i][j]f[i][j]f[i][j]表示前iii行放在jjj列的最大收益
转移方程
f[i][j]=max(f[i−1][k]+val−sum)f[i][j] = max(f[i-1][k]+val-sum)f[i][j]=max(f[i−1][k]+val−sum)
valvalval为当前矩形所有元素之和,sumsumsum为本矩形与前一行矩形重叠部分的值
考虑jjj -> j+1j+1j+1时带来的影响
不理解这个状态转移方程是什么意思?F[i][j]F[i][j]F[i][j]和f[i−1][k]f[i-1][k]f[i−1][k]的关系是什么?怎样处理出sumsumsum?