CCF 门禁系统 你的名字 2021-06-24 15:57 377阅读 0赞 ## **一、试题** ## 问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。 输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数。 第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。 输出格式 输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。 样例输入 5 1 2 1 1 3 样例输出 1 1 2 3 1 评测用例规模与约定 1≤n≤1,000,读者的编号为不超过n的正整数。 ## **二、代码** ## 利用map库的一个小技巧,++mapNum\[num\];如果没有num这个key,增加一个并赋值1,否则自增。 #include<cstdio> #include<map> using namespace std; int main(){ int n,num; int to[1000]; map<int, int> mapNum; scanf("%d", &n); for(int i=0; i<n; i++){ scanf("%d", &num); ++mapNum[num]; to[i] = mapNum[num]; } for(int j=0; j<n; j++){ printf("%d%s", to[j], " "); } return 0; }
还没有评论,来说两句吧...