CCF CSP认证试题及详细答案.docxVIP

  • 1
  • 0
  • 约7.87千字
  • 约 11页
  • 2026-05-18 发布于河北
  • 举报

CCFCSP认证试题及详细答案

试题一:门禁系统(基础模拟题,100分)

题目描述

门禁系统采用刷卡进入的方式,每次刷卡会记录下刷卡人的编号。请你编写一个程序,对于每一次刷卡,输出该人本次是第几次刷卡进入。

输入格式:

第一行输入一个整数n(1≤n≤100000),表示刷卡次数。

第二行输入n个整数,每个整数表示刷卡人的编号(编号为正整数,范围1≤编号≤10000)。

输出格式:

输出n个整数,分别对应每次刷卡时,该编号的人本次是第几次刷卡,整数之间用空格分隔。

样例输入:

5

31332

样例输出:

11231

详细答案

解题思路

核心需求:统计每个编号的刷卡次数,且每次刷卡后立即输出当前编号的累计次数。适合用哈希表(字典)存储每个编号的当前次数,遍历输入的每个编号,每次遍历先将该编号的次数加1(首次刷卡从1开始),再输出该次数。

注意点:n最大为1e5,需保证算法时间复杂度为O(n),字典查询和修改均为O(1),满足要求;编号范围较小,无需考虑内存溢出问题。

代码实现(C++,贴合考试规范)

cpp

#includeiostream

#includeunordered_map

usingnamespacestd;

intmain(){

ios::sync_with_stdio(false);//加速输入输出,应对大数

文档评论(0)

1亿VIP精品文档

相关文档