HDU 2571(DP 和 初始化问题)
设 $dp[i][j]$ 表示第 $i$ 行,第 $j$ 列的最大幸运值。 对于第 $i$ 行 $j$ 列的最大值转移状态: 1、来自于第 $i-1$ 行 $j$ 列,取$dp[i-1][j] 。$ 2、来自第 $i$ 行 $j-1$ 列,取$dp[i][j-1]。$ 3、由于他会跳步,比如我现在是第 $9$ 列,那么它会从同行第 $1$ 列跳 $k=9$ 过来;从同行第 $3$ 列 跳 $k=3$ 过来;当然原地跳不算。 故你会发现,枚举 $k$ 值,$k$ 从小于 $j$ 列的地方跳 $k$ 倍过来,面对不是 $j$ 的约数,跳过即可。 初始化问题: 此题限定了起点,即我必须从最左上角开始走,那么对于$dp[1][0]$ 和 $dp[0][1]$ 如果我设的是负无穷的话,那么对于起点$dp[i][j]$ ,我一定要选择左边的点$(dp[1][0])$和上面的点$(dp[0][1])$,而这两点都是负无穷,这样会改变 dp 的起点值,我们需要让整个状态从左上角转移,所以$dp[1][0]$ 和 $dp[0][1]$ 要设为 $0$ 。 其次,对于边界: $dp[0][i]$与$dp[i][0]$,为了保证我一定要从 上面一个点(对于$dp[i][1]$ )或从左边一个点(对于$dp[1][j]$)转移过来,故需要将这两条边界设为负无穷(除了上面所说的 $dp[1][0] 和 dp