酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++ 实现计算不同天数公布成绩时学生的愉快度之和

以下是使用 C++ 实现该功能的代码: ```cpp #include <iostream> #include <vector> int main() { int n, m, B, C; // 输入学生数量 n、询问天数 m、提前一天的愉快度 B 和等待一天的不愉快度 C std::cin >> n >> m >> B >> C; std::vector<int> t(n); // 输入每个学生希望公布成绩的时间 for (int i = 0; i < n; ++i) { std::cin >> t[i]; } // 遍历每一天,计算当天公布成绩时的愉快度之和 for (int day = 1; day <= m; ++day) { int total_happiness = 0; for (int i = 0; i < n; ++i) { if (day <= t[i]) { // 如果成绩在学生期望时间之前公布,计算提前的天数并乘以 B total_happiness += (t[i] - day) * B; } else { // 如果成绩在学生期望时间之后公布,计算等待的天数并乘以 C total_happiness -= (day - t[i]) * C; } } // 输出当天公布成绩时的愉快度之和 std::cout << total_happiness; if (day < m) { std::cout << " "; } } std::cout << std::endl; return 0; } ``` ### 代码解释: 1. **输入处理**:首先读取学生数量 `n`、询问天数 `m`、提前一天的愉快度 `B` 和等待一天的不愉快度 `C`。然后读取每个学生希望公布成绩的时间,存储在向量 `t` 中。 2. **计算愉快度之和**:使用一个外层循环遍历从第 1 天到第 `m` 天,对于每一天,使用内层循环遍历每个学生,根据成绩公布的时间和学生期望的时间计算愉快度或不愉快度,并累加到 `total_happiness` 中。 3. **输出结果**:输出每一天公布成绩时的愉快度之和,每个结果之间用空格隔开。 ### 复杂度分析: - **时间复杂度**:$O(nm)$,其中 $n$ 是学生的数量,$m$ 是询问的天数。 - **空间复杂度**:$O(n)$,主要用于存储每个学生希望公布成绩的时间。 ######[AI问答 | 594点数解答 | 2026-05-01 15:41:39]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]