题目描述
十一届蓝桥杯 C++ 省赛B组
样例
A: 38800
B: 52038720
E: 1340
代码
/*
f[i][j] 表示第一行,第二行填充 分别为i,j的情况下的方案数 i>=j
f[i][j]
*/
#include<iostream>
using namespace std;
const int N = 1010, mod=2020;
int f[N+1][N+1];
int main(){
f[0][0] = 1;
for(int i=1; i<=N; i++)
for(int j=0; j<=i; j++){
f[i][j] += f[i][j-1];
f[i][j] %= mod;
if(i>j) f[i][j] += f[i-1][j];
f[i][j] %= mod;
}
cout<<f[N][N];
return 0;
}
#include<iostream>
using namespace std;
const int N = 35;
int f[N][N];
int main(){
int n, m;
cin>>n>>m;
f[1][1] = 1;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++){
if(i%2==0 && j%2==0) continue;
if(i-1>=1) f[i][j] += f[i-1][j];
if(j-1>=1) f[i][j] += f[i][j-1];
}
cout<<f[n][m]<<endl;
return 0;
}