2020年CSP和NOIP编程比赛试题及答案

需积分: 0 3 下载量 19 浏览量 更新于2024-06-30 收藏 8.94MB DOCX 举报
CSP 2020-J_S 第一轮、第二轮;NOIP 2020 在线模拟赛;NOIP 2020 正式赛1 本资源摘要信息涵盖了 CSP 2020-J_S 的第一轮、第二轮试题,NOIP 2020 在线模拟赛试题,以及 NOIP 2020 正式赛1 的试题。 **CSP 2020-J_S 第一轮、第二轮** CSP 2020-J_S 是中国计算机学会(CCF)举办的全国计算机专业人才选拔赛,旨在选拔优秀的计算机专业人才。该赛事分为初、高、中三个级别,每个级别都有多个试题。 CSP 2020-J_S 的第一轮、第二轮试题涵盖了编程语言、数据结构、算法设计、计算机网络等多个领域,旨在考察选手的编程能力、算法设计能力和问题解决能力。 **NOIP 2020 在线模拟赛** NOIP 2020 在线模拟赛是中国计算机学会(CCF)举办的全国计算机专业人才选拔赛的在线模拟赛,旨在选拔优秀的计算机专业人才。该赛事涵盖了编程语言、数据结构、算法设计、计算机网络等多个领域,旨在考察选手的编程能力、算法设计能力和问题解决能力。 **NOIP 2020 正式赛1** NOIP 2020 正式赛1 是中国计算机学会(CCF)举办的全国计算机专业人才选拔赛的正式赛,旨在选拔优秀的计算机专业人才。该赛事涵盖了编程语言、数据结构、算法设计、计算机网络等多个领域,旨在考察选手的编程能力、算法设计能力和问题解决能力。 **知识点** 1. 编程语言:C++、算法设计、数据结构等 2. 算法设计:动态规划、贪心算法、递归算法等 3. 数据结构:数组、链表、栈、队列等 4. 计算机网络:网络协议、网络拓扑结构等 **试题解析** A 题:有趣的函数 该题目考察了选手的编程能力和算法设计能力,要求选手编写一个函数,计算给定函数的值。该函数的定义为: f(x) = x^2 + 3x + 2 其中 x 是一个整数。选手需要编写一个函数,计算给定 x 的值。 **参考标程** #include<bits/stdc++.h> using namespace std; const int N = 10000010; int T, n; int fac[N], inv[N]; double e = exp(1); const int mod = 998244353; int ksm(int x, int t) { int tot = 1; while (t) { if (t & 1) tot = 1ll * tot * x % mod; x = 1ll * x * x % mod; t /= 2; } return tot; } void ad(int &x, int y) { x = (x + y >= mod) ? (x + y - mod) : (x + y); } int C(int x, int y) { return 1ll * fac[x] * inv[x - y] % mod * inv[y] % mod; } int main() { freopen("A.in", "r", stdin); freopen("A.out", "w", stdout); scanf("%d", &T); n = 10000000; fac[0] = 1; for (int i = 1; i <= n; i++) fac[i] = 1ll * fac[i - 1] * i % mod; inv[n] = ksm(fac[n], mod - 2); for (int i = n - 1; i >= 0; i--) inv[i] = 1ll * inv[i + 1] * (i + 1) % mod; while (T--) { scanf("%d", &n); if (n < 3) { printf("1\n"); continue; } int ans = 0; for (int i = 1; i <= n; i++) { // ... } printf("%d\n", ans); } return 0; } 该参考标程使用了 C++ 语言,使用了位操作和模运算来计算给定函数的值。