思路
1.i==2||j==2不可走
2.边缘初始化一步
3.当前位子的可能等于左边和上边的数量之和:dp[i][j]=dp[i-1][j]+dp[i][j-1];
样例
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
const int nlen=n,mlen=m;
int res=0;
int dp[nlen+10][mlen+10];
memset(dp,0,sizeof dp);
for(int i=1;i<=nlen;i++)
for(int j=1;j<=mlen;j++){
if(i % 2 == 0 && j % 2 == 0) continue;
else if(i==1||j==1)dp[i][j]=1;
else dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
cout<<dp[nlen][mlen];
return 0;
}