P8707 走方格 题解
这是一道典型的动态规划题目,建议先尝试 P1002。
设
其中
而对于每一对
因此我们很容易得出以下代码:
#include <iostream>
using namespace std;
int f[31][31];
int main(){
int n,m;
scanf("%d%d",&n,&m);
f[1][1]=1;//边界:f(1,1)=1
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if((i&1||j&1)&&(i!=1||j!=1))//i,j不均为偶数,且i,j不均为1
f[i][j]=f[i-1][j]+f[i][j-1];//状态转移
printf("%d",f[n][m]);
return 0;
}