Problem Generator

思路

既然要得到至少需要生成几题那就需要知道有哪些是已经满足题意的,因此可以设置一个长度为 7 的一维数组来记录,将其初始化为 0 ,然后读入已有的题的字符串,每读入一个字母找到对应的格子,如果这个格子存储的数值大小已经等于了比赛的论述,读取到这个等级的题目也不+1,而是直接continue
读取完后再遍历一遍数组,看哪个格子中的值小于比赛轮数,就计算这个等级题目差多少道,加到计数器中

代码

#include<iostream>
using namespace std;
int main(){
    int num;
    cin>>num;
    for(int i=1;i<=num;++i){
        short flog[10];
        for(int j=0;j<10;++j) flog[j]=0;
        int n,m,cnt;
        string a;
        cin>>n>>m;
        cnt=7*m;
        cin>>a;
        for(int j=0;j<n;++j){
            if(flog[a[j]-'A']<m) {
                ++flog[a[j]-'A'];
                --cnt;
            }
        }
        cout<<cnt<<endl;
    }
    return 0;
}
posted @ 2025-01-23 15:31  Buy-iPhone  阅读(16)  评论(0)    收藏  举报