OneCoder Avatar
OneCodercoderli.com · 955 篇博文
三级

C++ 算法考级专栏

真题分析、矩阵探测、递归回溯与基础语法

🎨 视觉封面

【GESP】C++三级真题 luogu-B3842 [GESP202306 三级] 春游

📅 2025-04-30·✍️ OneCoder·计算中...·⏱️ 5 分钟
#GESP#C++#一维数组

GESP三级真题,一维数组相关,难度★★☆☆☆。

luogu-B3842 [GESP202306 三级] 春游

题目要求

题目描述

老师带领同学们春游。已知班上有 NN 位同学,每位同学有从 00N1N-1 的唯一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们报出自己的编号。到达的同学都会报出自己的编号,不会报出别人的编号,但有的同学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到达吗 ?。

输入格式

输入包含 22 行。第一行包含两个整数 NNMM,表示班级有 NN 位同学,同学们共有 MM 次报出编号。约定 2N,M10002 \le N,M \le 1000
第二行包含 MM 个整数,分别为 MM 次报出的编号。约定所有编号是小于 NN 的非负整数。

输出格式

输出一行。如果所有同学都到达,则输出 NN;否则由小到大输出所有未到达的同学编号,空格分隔。

输入输出样例 #1

输入 #1

BASH
3 3
0 2 1

输出 #1

BASH
3

输入输出样例 #2

输入 #2

BASH
3 5
0 0 0 0 0

输出 #2

BASH
1 2

题目分析

解题思路

  1. 读取输入的学生总数N和报数次数M
  2. 使用数组记录每个学生编号的出现情况:
    • 创建大小为N的布尔数组,初始化为false
    • 遍历M个报出的编号,将对应编号位置标记为true
  3. 检查未到达的学生:
    • 遍历布尔数组
    • 如果某位置为false,说明该编号学生未到达
  4. 输出结果:
    • 如果所有学生都到达,输出N
    • 否则按升序输出未到达学生的编号

复杂度分析:

  • 时间复杂度为 O(N+M)O(N+M),其中N为学生总数,M为报数次数
  • 空间复杂度为 O(N)O(N),需要一个大小为N的数组记录到达情况

示例代码

CPP
#include <iostream>

int main() {
    // 声明变量n表示学生总数,m表示报数次数
    int m, n;
    std::cin >> n >> m;

    // n_ary数组记录每个编号是否出现过,初始化为0
    int n_ary[n] = {0};
    // m_ary数组存储所有报出的编号
    int m_ary[m];

    // 读取所有报出的编号
    for (int i = 0; i < m; i++) {
        std::cin >> m_ary[i];
    }

    // 初始化n_ary数组为0,表示所有编号都未出现
    for (int i = 0; i < n; i++) {
        n_ary[i] = 0;
    }

    // 遍历所有报出的编号,将对应位置标记为1
    for (int i = 0; i < m; i++) {
        n_ary[m_ary[i]] = 1;
    }

    // flag表示是否所有学生都到齐
    bool flag = true;

    // 遍历n_ary数组,输出未出现的编号
    for (int i = 0; i < n; i++) {
        if (n_ary[i] == 0) {
            std::cout << i << " ";
            flag = false;
        }
    }

    // 如果所有学生都到齐,输出总人数n
    if (flag) {
        std::cout << n;
    }
    return 0;
}

💡 OneCoder 资源指引

所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI

🤝 技术交流与答疑

欢迎加入:C++ GESP/CSP 考级答疑群(688906745)Java/Python交流群(982860385),点击可直接加群。

📚

猜你想读 · 相关文章推荐

OneCoder

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

💬 读者留言与交流

0 条讨论
✨ 支持 Markdown 语法格式
还没有留言,快来成为第一个讨论者吧!