day28(3) 矩阵

【问题描述】

把1∼2020放在2×1010的矩阵里。要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案?

答案很大,你只需要给出方案数除以2020的余数即可。

【答案提交】

这是一道结果填空题,你只需要算出结果后提交即可。

本题的结果为一个 整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

'''
动态规划
一个一个放数字(从大到小)
记第一行有i个数
第二行有j个数
则我们放第i+j个数时有两种可能
(第一行和第二行)
dp[i][j] = dp[i-1][j] + dp[i][j-1]
初始条件dp[1][1]=2(填两个数)
求dp[1010][1010]
'''
def dp(i, j):
    if i == 1 and j == 1:
        return 2
    elif j > i:
        return 0
    elif j == i:
        return dp(i, j-1)
    else:
        return dp(i-1, j)+dp(i, j-1)

print(dp(1010, 1010))

猜你喜欢

转载自blog.csdn.net/qq_51174011/article/details/113762209
今日推荐