百杲憔 发表于 2025-6-4 19:58:45

3. 录入成绩【算法赛】{这题通过率是不是有点高!}——《蓝桥杯》第 24 场 小白入门赛

问题描述

点击查看题目信息蓝桥杯全国总决赛的颁奖典礼结束后,小蓝被分配了一个任务——录入部分获奖选手的奖项信息。

他用 "G"、"G1"、"G2"、"G3"、"GG"、"1"、"2"、"3" 这些字符串分别表示国特、国一、国二、国三、国优、省一、省二、省三等级。为了提高效率,小蓝写了个 Python 脚本来自动录入这些字符串。但是,小蓝过于粗心,竟忘记在各个奖项代码之间加分隔符!这就导致运行完脚本后,所有的奖项信息都挤在一起变成了一串长长的字符串,例如 "GG123G1G2G3123G1"。

小蓝的头发都快掉光了!他知道这部分选手中,每个奖项都至少有一位获奖选手,且国特只有一位。现在,他对着这串乱糟糟的字符串 S,想知道这部分选手中最多可能有多少位选手获得了国一("G1")。

对此,请你帮帮可怜的小蓝,找出字符串 S 中最多可能有多少个 "G1"。

## 输入格式
输入一个字符串 S,包含了所有的奖项信息,字符串长度不超过 2×10^3。
S 由 "G"、"G1"、"G2"、"G3"、"GG"、"1"、"2"、"3" 组成,保证 S 是合法的。

## 输出格式
输出一个整数,表示字符串
S中最多可能包含的 "G1" 的个数。

## 样例输入
GG123GG2G1G2G3123

## 样例输出
2解法思路

题目的核心就是每个奖项都至少有一位获奖选手,且国特只有一位。,所以要对S中的G枚举国特,记录除当前G剩下的字符串中G1的最大数量。注意要记录下是不是每个奖项都至少有一位获奖选手,且不能有国特(因为国特已经被考虑了)可以用unordered_map记录,最后查询一下key的数量。
代码

#include #include using namespace std;int main() {string s;cin>>s;int ans = 0;for (int i=0; i
页: [1]
查看完整版本: 3. 录入成绩【算法赛】{这题通过率是不是有点高!}——《蓝桥杯》第 24 场 小白入门赛