专栏文章

P11445 「ALFR Round 3」A 调皮的学生题解

P11445题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqp0315
此快照首次捕获于
2025/12/04 08:23
3 个月前
此快照最后确认于
2025/12/04 08:23
3 个月前
查看原文
要解决这个问题,我们需要统计每个学生的评分次数。如果一个学生只被评过一次分,那么他就不是调皮的学生;否则,他就是调皮的学生。
具体步骤如下:
初始化一个数组 o 来记录每个学生的评分次数。
读取输入数据并更新 o 数组。
遍历 o 数组,统计评分次数不为1的学生数量。
输出这个数量。
下面是实现代码:
CPP
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n, a, b, c;
    cin >> n >> a;
    vector<int> o(n + 1, 0); // 使用vector初始化为0
    int p;
    
    // 读入语文老师评分的学生学号
    for (int i = 0; i < a; i++) {
        cin >> p;
        o[p]++;
    }
    
    cin >> b;
    // 读入数学老师评分的学生学号
    for (int i = 0; i < b; i++) {
        cin >> p;
        o[p]++;
    }
    
    cin >> c;
    // 读入英语老师评分的学生学号
    for (int i = 0; i < c; i++) {
        cin >> p;
        o[p]++;
    }
    
    int len = 0;
    // 统计评分次数不为1的学生数量
    for (int i = 1; i <= n; i++) {
        if (o[i] != 1) {
            len++;
        }
    }
    
    cout << len;
    return 0;
}
解释:
初始化:我们用一个大小为 n+1 的向量 o 来记录每个学生的评分次数,初始值都为0。
读取输入:分别读取语文、数学和英语老师的评分情况,并更新 o 数组中对应位置的值。
统计调皮学生:遍历 o 数组,统计评分次数不为1的学生数量。
输出结果:输出调皮学生的数量。
这样,我们就可以正确地计算出调皮学生的数量了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...