我已经菜得连绿题都不会了。。。 Solution 首先要注意矩阵中有可能是0,因此要特判是否有0,最后跟不经过0的最优解进行比较。 要使尾0最少,发现只有质因子2和5的个数有贡献,因此可以设f[i][j][k]表示从(1,1)到(i,j)在有k个质因子2的情况下(若5的质因子多于2,则令k为负数,让下标加上一个M即
题面 题意: 给你一个地图,只能往下走或往右走,问走的整个道路经过所有点的乘积末尾 \(0\) 的最少个数。 考虑 DP。 因为末尾 \(0\) 的个数等于这条路上 \(2\) 的个数与 \(5\) 的个数的最小值,所以我们维护两个 DP 数组, \(f_{i,j}\) 存储从 \((1,1)\) 点走到 \((i,j)\) 点最少的 \(2\)
题目链接 题目 There is a square matrix n × n, consisting of non-negative integer numbers. You should find such a way on it that starts in the upper left cell of the matrix; each following cell is to the right or down from the current cell; the way ends in
https://www.luogu.com.cn/problem/CF2B 动态规划 \[f[i][j]表示从(1,1)走到(i,j)最少拥有的因子2数量\\ g[i][j]表示从(1,1)走到(i,j)最少拥有的因子5数量\\ 转移显然\\ 同时记录路径\\ 取ans=min(f[n][n],g[n][n]),特判有0的情况\\ 打印路径即可 \]\(C++ Code:\) #include<iostre
题目 CF2B The least round way 做法 后面\(0\)的个数,\(2\)和\(5\)是\(10\)分解质因数 则把方格中的每个数分解成\(2\)和\(5\),对\(2\)和\(5\)求两边动规,得出最小值\(ans=min(num_2,num_5)\) 我们贪心地选择最小值所对应的\(2\)或\(5\),然后从\((n,n)\)按动规路径返回 Code #include<
problem 题目大意:求一条路径\(from(1,1)\ to (n,n)\) 求0的个数 无非就是拆解 有几个10乘起来 $10 = 2 * 5 $ 那么单独存在$ 2\or\5$的时候肯定不能构成。 所以就是求一条路径下的 最少的2 和 最少的5 也就需要预处理出来 方格的每个数字 存在几个2 几个5 。 用两个数