返回题解分享
讨论 / 题解分享/ 帖子详情

矩阵(结果填空) - 题解

有个细节需要关注就是题中说“同一列中下面的比上面的大,但是人家没说下面的一定比上面的小”这就说明了这个数肯定是当前矩阵中最大的数,不管放上面还是放下面都必须放在最右边,然后用dp的动态转移方程就行了
#include<bits/stdc++.h>

using namespace std;

int dp[1020][1020];

int main(){

for(int i=1;i<=1010;i++)

{

	dp[i][0]=1;

	for(int j=1;j<=i;j++)//第一行的个数要不小于第二行的

	{

		if(i==j)dp[i][j]=dp[i][j-1];//放在第一行

		else 

		{

			dp[i][j]=(dp[i-1][j]+dp[i][j-1])%2020;

		}

	}

}


cout<<dp[1010][1010]<<endl;

return 0;

}
0 回复 0 转发 0 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!