2019 CSP-J(普及组)复赛【答案】.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
根据给定的信息,我们可以将这份文档中的四道题目及其解答归纳为以下四个主要知识点: ### 知识点一:签到题(字符串处理) #### 题目描述 本题是一道简单的签到题,目的是考察选手对于基本的字符串处理能力。题目要求统计一个给定的长度为8的字符串中字符`1`出现的次数。 #### 解答思路 1. **读入数据**:通过`cin`读取一个长度为8的字符串`s`。 2. **遍历字符串**:使用循环遍历字符串`s`中的每一个字符。 3. **计数**:如果遇到字符`1`,则计数器`ans`加1。 4. **输出结果**:最后输出计数器`ans`的值。 #### 代码示例 ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MOD = 1e9 + 7; const int INT_INF = 0x3f3f3f3f; const ll LL_INF = 0x3f3f3f3f3f3f3f3f; const int POS[8] = {0, 1, 0, -1, 1, 0, 1, -1}; const int MAXM = 1000005; const int MAXN = 100005; string s; int main() { freopen("number.in", "r", stdin); freopen("number.out", "w", stdout); cin >> s; int ans = 0; for (int i = 0; i < 8; i++) if (s[i] == '1') ans++; cout << ans << endl; return 0; } ``` ### 知识点二:模拟题 #### 题目描述 本题是一道模拟题,需要模拟一系列操作,具体操作包括:记录特定时间内的收益,并在特定情况下调整收益。 #### 解答思路 1. **定义变量**:定义`n`表示操作次数,`ans`表示最终收益,`R`表示记录数组的大小。 2. **记录操作**:使用结构体`Node`来记录每次操作的时间和收益,其中时间`t`,收益`p`。 3. **模拟过程**:遍历所有操作,如果是增加收益的操作,则直接增加收益并记录;如果是调整收益的操作,则需要遍历记录的数组,找到最近的且未被调整过、收益大于等于当前操作收益的记录进行调整。 4. **输出结果**:最后输出总收益。 #### 代码示例 ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MOD = 1e9 + 7; const int INT_INF = 0x3f3f3f3f; const ll LL_INF = 0x3f3f3f3f3f3f3f3f; const int POS[8] = {0, 1, 0, -1, 1, 0, 1, -1}; const int MAXM = 1000005; const int MAXN = 100005; int n, ans = 0, R = 0; int vis[MAXN] = {0}; struct Node { int t, p; Node() {} Node(int t, int p) : t(t), p(p) {} } a[MAXN]; int main() { freopen("transfer.in", "r", stdin); freopen("transfer.out", "w", stdout); cin >> n; while (n--) { int ty, p, t; cin >> ty >> p >> t; if (ty == 0) { ans += p; a[R++] = Node(t, p); } else { int flag = -1; for (int i = R - 1; i >= 0; i--) { if (t - a[i].t > 45) break; if (vis[i] == 1) continue; if (a[i].p >= p) flag = i; } if (flag == -1) ans += p; else { vis[flag] = 1; } } } cout << ans << endl; return 0; } ``` ### 知识点三:DP完全背包贪心转换 #### 题目描述 本题是一道综合性的题目,涉及动态规划中的完全背包问题、贪心算法以及数组转换。 #### 解答思路 1. **初始化变量**:定义多个数组用于存储数据,包括价格矩阵`a`、动态规划数组`dp`等。 2. **处理数据**:遍历每个时间段,找出需要进行背包计算的数据,即今天价格低于明天价格的商品。 3. **完全背包**:利用完全背包的思路更新动态规划数组`dp`。 4. **更新最大值**:计算当前阶段的最大收益,并更新到总收益中。 5. **输出结果**:输出最终的最大收益。 #### 代码示例 ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MOD = 1e9 + 7; const int INT_INF = 0x3f3f3f3f; const ll LL_INF = 0x3f3f3f3f3f3f3f3f; const int POS[8] = {0, 1, 0, -1, 1, 0, 1, -1}; const int MAXM = 1000005; const int MAXN = 100005; int a[105][105]; int dp[10005]; int w[105], cnt; int main() { freopen("transfer.in", "r", stdin); freopen("transfer.out", "w", stdout); cin >> T >> N >> M; for (int i = 1; i <= T; i++) for (int j = 1; j <= N; j++) cin >> a[i][j]; for (int i = 1; i < T; i++) { cnt = 0; for (int j = 1; j <= N; j++) if (a[i][j] < a[i + 1][j]) w[cnt++] = j; memset(dp, 0, sizeof(dp)); for (int j = 0; j < cnt; j++) { int id = w[j]; for (int v = a[i][id]; v <= M; v++) { dp[v] = max(dp[v], dp[v - a[i][id]] + a[i + 1][id] - a[i][id]); } } if (cnt > 0) { int ans = 0; for (int j = 1; j <= M; j++) ans = max(dp[j], ans); M = ans + M; } } cout << M << endl; return 0; } ``` ### 知识点四:找规律+BFS #### 题目描述 本题是一道结合了找规律和广度优先搜索(BFS)的题目,要求选手通过观察样例找出规律,并使用BFS求解。 #### 解答思路 1. **寻找规律**:通过给出的例子或题目描述找到解题的关键规律。 2. **构建图模型**:根据题目要求,构建相应的图模型。 3. **BFS求解**:利用广度优先搜索算法遍历图中的节点,直到找到满足条件的结果为止。 4. **输出结果**:输出最终的答案。 #### 代码示例 由于题目描述和示例部分缺失,无法提供完整的代码示例。通常这类题目会涉及到构建状态转移图,并利用队列实现BFS算法来解决问题。在实际编写代码时,需要根据具体的题目描述来完成这部分逻辑。






























剩余6页未读,继续阅读


- 粉丝: 208
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 毕设&课设:智慧型报告厅——我的毕业设计项目.zip
- 毕设&课设:智慧校园之家长子系统.,计算机毕业设计,毕设,Java毕业设计,SpringBoot,SSM,小程序.zip
- 中国软件杯赛事中的计算机视觉前端框架
- 【自然语言处理】基于中文分词的文本相似度动态规划算法优化:高效准确的论文防抄袭系统设计与实现(论文复现含详细代码及解释)
- 这篇文章详细介绍了针对室内3D物体检测的主动学习框架,旨在解决室内场景下3D物体检测面临的独特挑战,包括样本少、类别多、类别不平衡严重以及场景类型和类内差异大的问题(论文复现含详细代码及解释)
- 【电力电子与控制工程】基于准PR+改进重复控制的光伏逆变器谐波抑制与动态响应优化:复合控制策略的MATLAB仿真及硬件实现(论文复现含详细代码及解释)
- 机器学习与深度学习 Python实现基于PSO-Transformer粒子群优化算法(PSO)优化Transformer编码器进行多特征分类预测的详细项目实例(含完整的程序,GUI设计和代码详解)
- 【神经网络同步与稳定性】几类比例时滞神经网络的同步性和稳定性研究:理论分析、MATLAB代码复现及应用示例(论文复现含详细代码及解释)
- 详细研究了交错并联Buck变换器的工作原理、性能优势及其仿真实现(论文复现含详细代码及解释)
- 相似性搜索及其应用进展
- 深度学习与计算机视觉:从入门到精通之路详解
- 电力电子交错并联双向Buck/Boost集成LLC谐振型三端口直流变换器设计与仿真:新能源微电网高效功率转换系统(论文复现含详细代码及解释)
- 电力电子交错并联型光伏储能双向DC-DC变换器研究:解决电流不均与提高系统稳定性(论文复现含详细代码及解释)
- 变化检测-基于全卷积孪生网络实现的变化检测算法-附项目源码-优质项目源码.zip
- 基于计算机视觉技术的辅助驾驶软件杯项目
- 2019 年度广东工业大学计算机视觉课程作业


