acwing蓝桥杯第十一届B组真题 第三题 DP

124 阅读1分钟

第三题

www.acwing.com/problem/con…

题目给一个n行m例的矩阵,要求我们从(1,1)坐标开始走,走到(n,m)位置,规定只能向下向右两个方向移动,并且偶数格子不可以走。问有多少种方案可以到达。image.png

这道题可以用DP来递推,因为DP就是通过子问题来解决总问题。

这道题因为只能向下或者向右移动,总方案就为向右的方案和向下的方案的集合。

我们分析为下图:

image.png

code

image.png

二刷

image.png

公式写错了,我想的是只能向右向下移动。那么向右就是j+1,向下就是i+1。

所以dp[i][j]=dp[i+1][j]+dp[i][j+1]

image.png

但是这样就忽略了我们的状态表示了。dp[I][J]代表的是从(1,1)到达(n,m)位置的方案总和

dp[i-1][j]代表从(1,1)位置到达(i-1,j)位置的方案总和

dp[i][j-1]代表从(1,1)位置到达(i,j-1)位置的方案总和

因为到达(i,j)位置只能通过(i-1,j)(i,j-1)两个方向到达,所以求出了dp[i-1][j],dp[i][j-1]就相当于求出了dp[i][j]

image.png