思路
CCPC比赛的时候感觉自己dp实在太差了,最近准备补一波
本题的意思是从一个矩阵的左上角走到右下角(只能向右和向下),问路径上数的积的末尾最少有几个零。我们可以想到把2和5分开考虑,分别dp然后看右下角是2少还是5少,然后回溯打印路径。需要注意的是当矩阵中有0时,我们要考虑如果我们右下角能得到一个一个末尾0都没有的数的话,我们选这种方案,不然经过0的路径一定是最优的(末尾只有一个0)。
转移方程:
dp1[i][j]=min(dp1[i-1][j],dp1[i][j-1])+two[i][j];
dp2[i][j]=min(dp2[i-1][j],dp2[i][j-1])+five[i][j];
代码
1 |
|