对于每一行的 −1-1−1,显然只会填一种数字,因此可以得出一种比较朴素的 DP。设 fi,jf_{i,j}fi,j 表示考虑前 iii 行,第 iii 行的 −1-1−1 变为 jjj 时的最大值,再设 di,jd_{i,j}di,j 表示第 iii 行数字 jjj 的个数,则可列出转移方程:
fi,j=maxo=1k{ fi−1,o+di−1,−1×di,o+di−1,−1×di,−1}+di−1,j×di,j+di−1,j×di,−1 f_{i,j} = \max \limits _{o = 1} ^ k\{f_{i - 1,o} + d_{i - 1,-1} \times d_{i,o} + d_{i - 1,-1} \times d_{i,-1}\} + d_{i - 1,j} \times d_{i,j} + d_{i - 1,j} \times d_{i,-1} fi,j=o=1maxk{ fi−1,o+di−1,−1×di,o+di−1,−1