美文网首页
计蒜客 - 课外活动

计蒜客 - 课外活动

作者: 戴文KeepLearning | 来源:发表于2022-02-09 11:34 被阅读0次
QQ图片20220210112022.png

题目解析
此题对于刚入门信竞的学生来说会存在一定的难度,因为它将函数、排序、动态数组这几个重要概念进行了综合考察。

编程解题,随着题目难度的增加,我们要养成习惯,写代码前先理清思路,列出算法步骤,每一步解决一个问题。最后,我们再按照步骤一步步去用代码实现。

我们就以此题为例,首先列出算法步骤:

  1. 读取输入
  2. 算出每个学生的编号 a_i 的和 S,将它们保存到对应的动态数组中。
    2.1 此处,计算各位数字之和,我们可以使用一个函数来实现功能,代码会更加简洁和清晰。
    2.2 我们怎样设置一个动态数组保存呢? 观察题目,正整数 a_i 最大值为 10^6 ,那么各位数字之和的最大值是不是 99999 这个情况,也就是 54, 那么声明 55 个元素的数组就可以啦,数组又分别是一个动态数组,(对于新手)这里请仔细思考和理解。
  3. 根据求出的和,把每个编号 a_i 保存到对应的动态数组,最后再遍历这 55 个元素,找出元素最多的动态数组,元素同样多选组号最小的。
  4. 对该组进行从大到小的排序。
  5. 输出结果。

根据这个步骤,我们可以写出以下代码:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int sum(int x){ // 对编号 a 求和的函数
    int SUM = 0;
    while(x > 0){
        SUM += x % 10;
        x /= 10;
    }
    return SUM;
}

int main(){
    int n;
    cin >> n;
    int stu[n];
    for(int i=0; i<n; i++){
        cin >> stu[i];       
    }
    vector<int> group[55];  // 动态数组的数组,根据编号a的和进行保存
    for(int i=0; i<n; i++){
        int SUMM = sum(stu[i]);
        group[SUMM].push_back(stu[i]); 
    }
    int Max_num = 0;
    int group_id = 0;
    for(int i=1; i<=54; i++){
        if(group[i].size() > Max_num){
            Max_num = group[i].size();
            group_id = i;
        } 
    }
    sort(group[group_id].begin(),group[group_id].end(), greater<int>()); // 排序
    cout << group_id << endl;
    for(int i=0; i<group[group_id].size();i++){
        cout << group[group_id][i] << " ";
    }
    return 0;
}

相关文章

  • 计蒜客 - 课外活动

    题目解析此题对于刚入门信竞的学生来说会存在一定的难度,因为它将函数、排序、动态数组这几个重要概念进行了综合考察。 ...

  • 计蒜客(一)

    原题地址:判断元素是否存在 - 题库 - 计蒜客 蒜头君有一个集合 M 是这样生成的: (1) 已知 k 是集合 ...

  • 计蒜客题库五

    第五题 应该是没有问题,但第二组未通过

  • 计蒜客题库七

    第七题

  • 计蒜客题库六

    第六题

  • 计蒜客题库八

    第八题

  • 计蒜客 - 猴子打字

    计蒜客 - 猴子打字 有一个有趣的定理:无限猴子定理(infinite monkey theorem),它的表述如...

  • 计蒜客 - 矩阵查询

    计蒜客 矩阵查询 题目描述 给出 的矩阵 ,初始时均为 。 我们需要支持两种操作: ,表示 上的元素加上 。 ...

  • 计蒜客 - 斑点蛇

    计蒜客 - 斑点蛇 有一种神奇斑点蛇,蛇如其名,全身都是斑点,斑点数量可以任意改变。 有一天,蒜头君十分的无聊,开...

  • 计蒜客 - 黑白石头

    计蒜客 - 黑白石头 沙滩上有一些石头,石头的颜色是白色或者黑色。小羊会魔法,它能把连续一段的石头,黑色变成白色,...

网友评论

      本文标题:计蒜客 - 课外活动

      本文链接:https://www.haomeiwen.com/subject/btenkrtx.html