CSP - J组难题破解:插班生入座对学生听课认真度总和的影响及C++实现
以下是使用 C++ 解决该问题的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; // 存储每个学生的听课认真度 vector<int> a(n + 1); for (int i = 1; i <= n; ++i) { cin >> a[i]; } // 遍历插班生可能坐的每个位置 for (int seat = 1; seat <= n; ++seat) { int totalAttention = 0; // 重新复制一份听课认真度数组,避免修改原始数组 vector<int> attention = a; // 被占领座位的学生听课认真度变为 0 attention[seat] = 0; // 计算每个学生听课认真度的减少量 for (int i = 1; i <= n; ++i) { if (i != seat) { int dis = abs(i - seat); int decrease = n - dis; // 确保听课认真度不低于 0 attention[i] = max(0, attention[i] - decrease); } } // 计算所有学生的听课认真度之和 for (int i = 1; i <= n; ++i) { totalAttention += attention[i]; } // 输出结果 cout << totalAttention; if (seat < n) { cout << " "; } } cout << endl; return 0; } ``` 代码解释: 1. 输入处理:首先读取学生的数量 `n`,然后读取每个学生的听课认真度,存储在数组 `a` 中。 2. 遍历插班生可能的座位:使用 `for` 循环遍历插班生可以坐的每个位置。 3. 模拟插班生入座:对于每个座位,复制一份听课认真度数组 `attention`,将被占领座位的学生听课认真度设为 0。 4. 计算听课认真度的减少量:遍历每个学生,计算其与插班生的距离 `dis`,进而得到减少量 `n - dis`,同时确保每个学生的听课认真度不低于 0。 5. 计算总听课认真度:将所有学生的听课认真度相加,得到总听课认真度。 6. 输出结果:输出每个插班生座位对应的总听课认真度,用空格分隔。 复杂度分析: - 时间复杂度:$O(n^2)$,因为对于每个插班生座位,都需要遍历一次所有学生。 - 空间复杂度:$O(n)$,主要用于存储学生的听课认真度。 ######[AI问答 | 642点数解答 | 2026-02-07 18:26:52]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)346
- Java程序模拟教学选课:林老师开课,58 位学生选课男女比例大揭秘( | 2653点数解答 | 2024-04-02 11:00:16)472
- Java程序设计课程:模拟教学管理,统计58位选课学生男女比重( | 363点数解答 | 2024-04-05 18:31:39)475
- R语言实战:用配对样本t检验评估课程强化集训对学生成绩的提升效果(GPT | 630点数解答 | 2024-11-26 22:00:01)323
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)316
- CSP - J/S 2024 第二轮分数线公布!编写程序计算二、三等奖分数线(GPT | 634点数解答 | 2024-11-22 23:39:24)233
- P1007:小核桃数组变换难题,Python代码揭秘最终平方和!(字节豆包 | 416点数解答 | 2026-02-07 18:24:18)45
- P1007小核桃数组变换难题:C++代码求解最终两数平方和! (字节豆包 | 651点数解答 | 2026-02-07 18:25:02)34
- CSP - J组难题破解:插班生入座对学生听课认真度总和的影响及C++实现(字节豆包 | 642点数解答 | 2026-02-07 18:26:52)32
- “天气之子”试炼:用代码破解天气预报成功天数之谜,复杂度分析揭秘!(字节豆包 | 797点数解答 | 2026-02-07 18:29:12)38
- 揭秘天气之子试炼:巧用算法计算天气预报成功天数(字节豆包 | 734点数解答 | 2026-02-07 18:30:34)31
- CSP - J组难题:小核桃数组规则谜题求解与代码详解(字节豆包 | 555点数解答 | 2026-02-07 18:38:00)32