- 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)