• XTU OJ 1170 学习笔记


    ICPC 

    题目描述

    ACM/ICPC比赛涉及的知识点非常多,一个队伍三个人需要能够互补。一个队伍某个知识点的高度是三个人中水平最高的那个人决定。现在给你三个人的每个知识点的水平情况,请计算一下这个队伍的水平。

    输入

    存在多个样例。每个样例的第一行是一个整数N(3≤N≤100),表示所有知识点的个数。 以后三行为每个人每个知识点的水平情况。水平用A到E表示,一共5级,A最强,E最弱,依次递减。

    输出

    每个样例输出两行,第一行为一个字符串,一个队伍的各个知识点的水平情况。第二行是5个整数,表示5个级别知识点的个数,每个整数之间有一个空格。

    样例输入
    3
    ABC
    BBB
    AAE
    4
    DDBD
    DEDC
    CDDE
    0
    
    
    样例输出
    AAB
    2 1 0 0 0
    CDBC
    0 1 2 1 0
    1. #include
    2. using namespace std;
    3. const int N=110;
    4. char s1[N],s2[N],s3[N],m[N],num[10];
    5. int main()
    6. {
    7. int n;
    8. while(~scanf("%d",&n))
    9. {
    10. if(n==0) break;
    11. scanf("%s",s1);
    12. scanf("%s",s2);
    13. scanf("%s",s3);
    14. memset(m,0,sizeof m);
    15. for(int i=0;i
    16. {
    17. m[i]=min({s1[i],s2[i],s3[i]});
    18. }
    19. for(int i=0;iprintf("%c",m[i]);
    20. printf("\n");
    21. memset(num,0,sizeof num);
    22. for(int i=0;i'A']++;
    23. for(int i=0;i<4;i++) printf("%d ",num[i]);
    24. printf("%d\n",num[4]);
    25. }
    26. return 0;
    27. }

    每一个知识点的水平是由最强的人决定的,这就是所谓的长板效应。靠前的字母表示水平高,我们实际上只需要找到每一个知识点对应的最靠前的字母即可,找到每一列最靠前的字母,就表示找到了最高的水平,然后一次输出代表最高水平的字母即可。

    使用一个计数器来存储每一个最高水平字母出现的次数,然后把这个次数依次输出即可

    注意一下代码细节,使用min函数寻找最小值,如果要寻找三个元素里面的最小值,可以使用大括号括起来,像这样子

     

    m[i]=min({s1[i],s2[i],s3[i]});

    每一次循环都要初始化m数组和计数数组,防止上一次循环的结果对后一次循环造成影响

    注意输出的格式要求,有时候最后一个元素后面不能有空格

     

  • 相关阅读:
    再聊Java Stream的一些实战技能与注意点
    晨控CK-GW08系列网关控制器与CODESYS软件MODBUSTCP通讯手册
    java毕业设计畅言情感互助网站mybatis+源码+调试部署+系统+数据库+lw
    leetcode_1155 掷骰子等于目标和的方法数
    用户投稿|Cursor——软件开发行业新变革
    shell脚本学习笔记03(小滴课堂)
    解析java中的StringBuffer和StringBuilder
    go strings 包
    C++ 封装-构造和析构
    Vue 2与Vue 3生命周期钩子的对比分析
  • 原文地址:https://blog.csdn.net/L3102250566/article/details/134497153