solution.md 1.0 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1 2 3 4 5 6 7 8 9 10
# 矩阵

把 1 ∼ 2020 放在 2 × 1010 的矩阵里。

要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案?

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

以下程序实现了这一功能,请你补全空白处内容:

每日一练社区's avatar
每日一练社区 已提交
11
```cpp
每日一练社区's avatar
每日一练社区 已提交
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
#include <stdio.h>
int DP[1011][1011];
int main()
{
    int i, j;
    DP[1][0] = 1;
    for (i = 1; i <= 1010; i++)
        DP[i][0] = 1;
    for (i = 1; i <= 1010; i++)
    {
        for (j = 1; j <= i; j++)
        {
            if (i == j)
                DP[i][j] = DP[i][j - 1];
            else
                __________________;
        }
    }
    printf("%d", DP[1010][1010]);
    return 0;
}
```

## aop

### before

每日一练社区's avatar
每日一练社区 已提交
39
```cpp
每日一练社区's avatar
每日一练社区 已提交
40 41 42 43 44

```

### after

每日一练社区's avatar
每日一练社区 已提交
45
```cpp
每日一练社区's avatar
每日一练社区 已提交
46 47 48 49 50

```

## 答案

每日一练社区's avatar
每日一练社区 已提交
51
```cpp
每日一练社区's avatar
每日一练社区 已提交
52 53 54 55 56 57 58
DP[i][j] = (DP[i - 1][j] + DP[i][j - 1]) % 2020
```

## 选项

### A

每日一练社区's avatar
每日一练社区 已提交
59
```cpp
每日一练社区's avatar
每日一练社区 已提交
60 61 62 63 64
DP[i][j] = (DP[i - 1][j + 1] + DP[i - 1][j + 1]) % 2020
```

### B

每日一练社区's avatar
每日一练社区 已提交
65
```cpp
每日一练社区's avatar
每日一练社区 已提交
66 67 68 69 70
DP[i][j] = (DP[i][j] + DP[i][j - 1]) % 2020
```

### C

每日一练社区's avatar
每日一练社区 已提交
71
```cpp
每日一练社区's avatar
每日一练社区 已提交
72 73
DP[i][j] = (DP[i - 1][j] + DP[i][j]) % 2020
```