#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;
}
每一步都由上一步得来,即a[i][j]都由a[i-1][j]或则a[i][j-1]得来,最后a[n][m]就是答案,第一时间没有想到用dp,所以想半天想不出来