CSP 模拟 · CSP 2020 第一轮(初赛)模拟 第 18 题

阅读程序 · 答案 BAC

← 整套速查表 CSP 模拟 全部真题

题目

3.

 
#include<bits/stdc++.h>
using namespace std;
#define MOD 19260817
#define MAXN 1005
long long A[MAXN][MAXN] = {0}, sum[MAXN][MAXN] = {0};
int n, m, q;
int main() {
    A[1][1] = A[1][0] = 1;
    for(int i = 2; i <= 1000; i++) {
        A[i][0] = 1;
        for(int j = 1; j <= i; j++)
            A[i][j] = (A[i - 1][j] + A[i - 1][j - 1]) % MOD;
    }
    for(int i = 1; i <= 1000; i++)
        for(int j = 1; j <= 1000; j++)
            sum[i][j] = (sum[i - 1][j] + sum[i][j - 1] 
              - sum[i - 1][j - 1] + A[i][j] + MOD) % MOD;
    int q;
    cin >> q;
    while(q--) {
        int n, m;
        cin >> n >> m;
        cout << sum[n][m] << endl;
    }
    return 0;
} 

1) (1 分)当 $i\leq j$ 时,A[i][j] 的值是 $0$。( ) 2) 当 $i>j$ 时,A[i][j] 的值相当于从 $i$ 个不同元素中取出 $j$ 个元素的排列数。( ) 3) sum[i][j] 的值($1<j<i\leq 1000$)不小于 sum[i-1][j-1] 的值。( ) 4) 若将第 12 行改为 `A[i][j]=(A[i-1

(本题为阅读程序 / 完善程序,完整题目与测试数据见平台)

答案:BAC

解题思维

本题考查基础知识的理解与应用,需要结合所学概念进行分析和判断。

常见错误

注意审题,看清题目要求是选择"正确的"还是"不正确的"。逐一分析每个选项,排除明显错误的选项。

详细解析(节选)

核心概念:本题涉及计算机科学基础知识,需要准确理解相关概念的定义和应用场景。

推导分析:逐一检查每个选项是否符合题目的条件和要求;对于不确定的选项,可以尝试举反例验证;结合排除法缩小选择范围。

避坑指南:注意否定词如"不正确的是""不属于";注意限定词如"一定""可能""必须"等绝对化表述往往是陷阱。

解题技巧:先排除明显错误的选项,在剩余选项中仔细比较。对于计算题,列出公式仔细计算。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断