要使填在矩阵中的数左边的数大于右边的数 下边的数大于上边的数
在满足填入矩阵上面的数大于等于下面数的个数的限制条件下顺序填入
dp初始化和遍历容易出错!
#include <iostream>
using namespace std;
int dp[1011][2022];
//第一行填i个数 要填j个数
int main()
{
dp[1][1]=1;
for(int i=1;i<=1010;i++)
dp[i][i]=1;
for(int i=1;i<=1010;i++)
for(int j=2;j-i<=i;j++)
{
//前一个填j-1个数
if(j-i==i)
dp[i][j]=dp[i][j-1];
else if(j-i<i)
dp[i][j]=(dp[i][j-1]+dp[i-1][j-1])%2020;
}
cout<<dp[1010][2020];
return 0;
}