1 条题解

  • 0
    @ 2025-8-24 22:45:19

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 封禁用户
    None

    搬运于2025-08-24 22:45:19,当前版本为作者最后更新于2023-03-12 13:24:40,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路

    输入 nn 个字符串,将字符串的两项转为数字并存入一个二维数组。

    定义一个二维数组存储每种题目的数量,每次输入后找到对应的项加上一。最后扫一

    遍这个二维数组。扫描的时候要注意一下有 33 种题目要出现 22 次才可以。

    详细思路请见代码。

    Code:

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int a[10][10];//第一项表示比赛编号,第二项表示题目编号
    string s;//输入的题号,不用再说
    int n;
    bool flag;//如果有空的项,就让flag=1,如果flag=1,输出NIE,否则输出TAK
    int main(){
        cin>>n;
        if(n<18){
            cout<<"NIE";
            return 0;//如果n比18小,直接结束程序
        }
        for(int i=1;i<=n;i++){
            cin>>s;
            int sum=s[1]-64;//这里将字母转为数字,A转为1,B转为2,C转为3
            a[s[0]-'0'][sum]++;//s[0]-'0'->字符转数字
        }
        for(int i=1;i<=4;i++){//先判断前4次
            for(int j=1;j<=3;j++){
                if(a[i][j]<1) flag=1;//如果发现空的项,就让flag=1
            }
        }
        if(a[5][1]<2||a[5][2]<2||a[5][3]<2) flag=1;//第五场比赛单独判断
        if(flag==0) cout<<"TAK";//判断flag是否为1
        else cout<<"NIE";
        return 0;
    }
    

    感谢观看!

    AC记录,供参考

    2023.3.92023.3.9 : 初次提交。

    2023.3.122023.3.12 : 添加 LaTeXLaTeX 公式/英文与汉字之间的空格以及句号,并细化思路。

    最后感谢审核员提出的建议。

    • 1

    信息

    ID
    8400
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者