7-19 题目统计
分数 10
全屏浏览题目
切换布局
作者 黄龙军
单位 绍兴文理学院
在ACM程序设计竞赛赛场,当某个队伍正确解答一道题目后就会在其前面升起1个彩色气球。而且每种颜色的气球只能用在一道题目上,所以不同颜色的气球不能相互替代。已知比赛过程中已送出的气球数量以及每个气球的颜色,请统计已成功解决的不同题目的总数。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试先输入一个整数n(1≤n≤100),代表已经送出的气球总数,然后输入n个已送出气球的颜色(由长度不超过20且不包含空格的英文字母组成),数据之间间隔一个空格。注意,统计时,忽略气球颜色的大小写。
输出格式:
对于每组测试,在一行上输出一个整数,表示已成功解决的不同题目的总数。
输入样例:
4
5 RED Red Blue Green REd
2 Pink pINk
1 YeLLoW
6 Red Blue Orange Blue Red ORANGE
输出样例:
3
1
1
3
来源:
[1] 黄龙军,等. 数据结构与算法, 上海:上海交通大学出版社, 2022.7. ISBN: 9787313269881
[2] 黄龙军,等. 大学生程序设计竞赛入门—C/C++程序设计(微课视频版), 北京:清华大学出版社, 2020.11. ISBN: 9787302564744
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int main(){
int n;
map<string,int>mp;
//根据题目要求输入多组数据
while(cin>>n){
getchar();
while(n--){
string s;
getline(cin,s);
mp[s]++;//统计出现次数
}
string a;
int maxsum=0;
map<string,int>::iterator it;
for(it=mp.begin();it!=mp.end();it++){
if(it->second>maxsum){maxsum=it->second;a=it->first;}
}
cout<<a<<endl;
//由于多组数据,则需要把上一数据进行清零处理
for(it=mp.begin();it!=mp.end();it++){
it->second=0;
}
}
return 0;
}
https://blog.csdn.net/weixin_64967734/article/details/124917528