7-92 解题统计 作者 黄龙军 单位 绍兴文理学院 程序设计竞赛时送气球已成惯例

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