ACM练习——第四天

99 篇文章 2 订阅
订阅专栏
7 篇文章 0 订阅
订阅专栏
文章讲述了如何使用C++和unordered_map解决一道关于学生分班的问题,涉及数据结构的应用,关键在于确定最多有多少学生属于同一个班级,同时考虑剩余在校学生数量的限制。
摘要由CSDN通过智能技术生成

ok,今天又是三节课的一天。

刚刚吃完饭的我一刻也不敢耽误,直接开干!!!

这些题和力扣上的,为了练习数据结构的题是不一样的。

直接上嘴脸

题目

第一次放学 (nowcoder.com)来自牛客网


思路

        先看他的输入,分别是N ,M ,K,有 N 名学生,这些学生属于 M 个班级,有 K 名学生已经冲出了学校

        然后下一行输入的是这些学生的分班。

        那么这道题,就是看最多有多少学生是属于同一个班级的。

        在这里我们先思考一个问题,如果你留下来的学生数量是 N - K,班级人数最多的班级人数为max,那么思考,最后你输出的答案是max吗?

答:

        可以是,也可以不是,因为如果N - K > max,你觉得科学吗,科学,直接输出max

        但是如果N - K < max呢?是不是输出max就不合理了,毕竟现在还在学校的人数都没有max个啊,这个时候是不是就需要输出N - K 个了。

也就是说

  1. 该班级本来就有的学生数量(即 max): 这是因为我们不能超过班级本来的学生数量。

  2. 目前还没出校的学生数量(即 N - K): 这是因为我们不能超过还没出校的学生总数。

因此,我们要在这两个限制因素中选择较小的那个值,以确保我们不超过实际的限制。如果 max大于 N - K,那么最多只能选择 N - K个学生,因为这是目前还没出校的学生的数量。如果 N - K大于 max,那么最多只能选择 max个学生,因为这是班级本来的学生数量。

所以,取 std::min(max, N - K) 是为了满足这两个限制条件,确保我们得到的值是合理的。

        然后就是这道题,我的思路是,可以使用一个map集合,key是班级序号,value是这个班级的人数,N - K我们一开始就知道,所以我们只需要统计每个班级的人数,最后获取到那个班级的人数最多就完美了。

最后输出最小值


C++代码示例 

#include <iostream>
#include <vector>
#include <unordered_map>

using namespace std;

int main(){
    // N 学生数量
    int N;
    // M 个班级
    int M;
    // K 名学生已经冲出了学校
    int K;
    // 给他们赋值
    cin >> N >> M >> K;
    // 创建一个map集合
    unordered_map <int, int> map;
    
    // 统计学生的人数
    for(int i = 0; i < N; i++){
        int key;
        cin >> key;
        map[key]++;
        
    }
    // 获取人数最多的班级
    int maxNum = 0;
    for(int i = 0; i < M; i++){
        maxNum = max(map[i + 1], maxNum);
    }
    // 输出答案
    cout << min(maxNum, N - K);
    
    return 0;
}





结语

代码中我也给出了极其详细的注释,欢迎大家讨论还有没有优化的方法。

今天就这样,┏(^0^)┛

ACM练习——第二天
WenJGo的博客
11-14 325
java优雅过度到C++
ACM练习——第一天
WenJGo的博客
11-13 765
如何优雅的从Java过度到C++
ACM练习——第五天
WenJGo的博客
11-18 206
ACM简单题练习
ACM练习——第三天
WenJGo的博客
11-15 526
Java过渡到C++
ACMACM练习——玛雅历
little_stupid_child的专栏
02-25 979
1.问题描述玛雅历Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 80876 Accepted: 24862Description 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。这个Haab历法拥有19个月,在开...
ACMACM练习——生理周期
little_stupid_child的专栏
02-24 962
1.问题描述生理周期Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 142163 Accepted: 45711Description人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容...
ACMACM练习——电话簿查重
little_stupid_child的专栏
02-23 963
1.问题描述487-3279Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 301651 Accepted: 53967Description 企业喜欢用容易被记住的电话号码。让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语。例如,你需要给滑铁卢大学打电话时,可以拨打TUT-GLOP。有时,只将电话号码中部...
ACM练习题——判断因数
student_hwj的博客
11-09 316
Description 描述: Today is the National day, and lmdd’s classmates and friends all go out and have fun, While lmdd can do nothing but coding and gaming. He feels bored and decides to play with numbers to kill time. 今天是国庆节,lmdd的同学和朋友们都出去玩了,而lmdd除了编程和游戏什么也做不了。
acm练习题——计算最小金额
student_hwj的博客
11-09 446
Description 描述 You are given two integers x and y. You can perform two types of operations: 给定两个整数x和y,可以执行两种操作: Pay a dollars and increase or decrease any of these integers by 1. For example, if x=0 and y=7 there are four possible outcomes after this opera
ACM准备模板——堆排序模板
09-27
ACM准备模板中,"ACM准备模板——堆排序模板.txt"可能包含了堆排序的完整代码示例,包括建堆、调整堆、插入和删除等关键函数的实现。学习并理解这个模板可以帮助参赛者快速地在比赛中实现堆排序,节省编程时间。 ...
Acm+java各种数据结构_Acm竞赛算法——数据结构算法分类
weixin_32251071的博客
02-26 658
ACM竞赛的算法,分为了数学、数据结构和算法三大块。一 数学(Mathematics)1 离散数学(Discrete Mathematics)1.1 图论(Graph Theory)图的遍历(Graph Traversal): DFS, BFS最小生成树(Minimum Spanning Tree): Prim, Kruskal最短路径(Shortest Path): Dijkstra, Floy...
牛客OJ在线编程常见输入输出练习——自我复习
JWeremy的博客
03-25 767
牛客OJ在线编程常见输入输出练习 对于像我一样的非科班来说,牛客的ACM模式对我们来说一开始应该是蒙圈的。 尤其是现在是春招、实习笔试的关键阶段,大家可是都要有输入输出处理的! 如果LeetCode刷了四五百道,结果不会输入输出,岂不是郁闷死(捂脸),在这里我发现了牛客的一个练习输入输出的地儿 链接在这里: 点击 OJ在线编程常见输入输出练习场. 然后我简单地做了一下,还是很有收获的,尤其是对于我这种菜鸟来说。 这里我参考了 NewsomTech的博客 这是链接 。毕
ACM算法学习记录——递归
m_Litreehole的博客
04-13 225
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、panda..
Python爬取某猫投诉数据(含signature参数分析与算法还原)
吴秋霖的博客
09-15 1177
使用Python爬取某猫投诉的数据(包含加密参数分析与算法的还原)
力扣 16.最接近的三数之和
qq_51352130的博客
09-16 387
设 s=nums[i]+nums[j]+nums[k],为了判断 s 是不是与 target 最近的数,我们还需要用一个变量 minDiff 维护 ∣s−target∣ 的最小值。分类讨论:如果 s=target,那么答案就是 s,直接返回 s。如果 s>target,那么如果 s−target<minDiff,说明找到了一个与 target 更近的数,更新 minDiff 为 s−target,更新答案为 s。然后和三数之和一样,把 k 减一。
尊享面试100题
最新发布
qq_71286244的博客
09-21 238
尊享面试100题
二分系列(二分答案最大值)9/15.16
2301_78191305的博客
09-16 1011
给你一批机器,及其它制作一块合金所需要的不同种类金属的个数。第一台机器制作一块合金,需要一块A金属、一块B金属、一块C金属。我们对每一类机器所需要的各种种类的金属进行判断,如果仓库里面有,就不需要花钱;如果mid-index<1的,要计算有多少个1。前n项和:(mid-1+1)*(mid-1)/2+leftCount-(mid-1);根据贪心:以index为中心,向两边依次-1,直到减到1为止。如果mid-rightCount<1,先计算多少个1,xxx。
双指针算法专题(2)
我要学编程的博客
09-16 1087
LeetCode刷题:有效三角形的个数、查找总价格为目标值的两个商品(两数之和)、三数之和、四数之和
杭电ACM课件:组合博弈入门——简单游戏理论
"杭电ACM课程的第三部分主要讲解了组合博弈的入门知识,包括Graph Games和Sprague-Grundy函数的概念。课程由杭州电子科技大学的刘春英教授讲授,探讨了一种简单的取子游戏,即组合游戏的一个实例,并深入介绍了必败...
写文章

热门文章

  • 轻型民用无人机驾驶航空器安全操控——理论考试多旋翼部分笔记 49443
  • 轻型民用无人机驾驶航空器安全操控——理论考试法规部分笔记 17591
  • 使用 Python 和 OpenCV 进行实时目标检测的详解 3811
  • Python爬虫——Urllib库-1 3289
  • 2022年蓝桥杯省赛——直线 3139

分类专栏

  • 我的算法记录 99篇
  • AI学习之路 23篇
  • C++之路 7篇
  • Python之路 43篇
  • Vue 14篇
  • 前端HTMLCSSJS 15篇
  • 数据库 1篇
  • Java之路 8篇
  • 无人机 2篇
  • 数学建模 24篇
  • 里程碑 1篇
  • 纠错分析 3篇
  • 蓝桥杯 20篇
  • Python爬虫 15篇
  • Dubbo 1篇
  • 分布式 1篇

最新评论

  • OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪

    征途黯然.: OpenCV与Matplotlib的结合使用轮毂检测与目标跟踪 article is excellent and truly impressive.表情包

  • OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪

    旷世奇才李先生: OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪,这篇文章很好,值得一读。

  • OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪

    全栈小5: 非常不错的技术领域文章分享,解决了我在实践中的大问题!博主很有耐心,更有对知识的热忱和热爱,写了这么实用有效的分享,值得收藏点赞。支持【OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪,博主这篇文章,值得一看】

  • OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪

    豆小匠: 干货啊,这篇博客关于OpenCV与Matplotlib的结合使用在轮毂检测与目标跟踪方面的讲解非常详尽。对于OpenCV在图像处理方面的强大功能以及Matplotlib在数据可视化方面的优势进行了很好的展示。通过这篇文章,读者可以了解到如何利用这两个工具进行轮毂检测和目标跟踪,对于相关领域的研究人员和开发者来说非常实用。感谢作者的分享!

  • OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪

    DevKevin: 干货啊,这篇博客详细介绍了OpenCV与Matplotlib的结合使用在轮毂检测与目标跟踪方面的应用。内容详实,讲解清晰,对于OpenCV在图像处理方面的强大功能以及Matplotlib在数据可视化方面的优势进行了很好的展示。对于想要深入了解计算机视觉和数据处理的朋友来说,是一篇不可多得的教程。感谢作者的分享!

大家在看

  • python+Django+MYSQL专利代理信息管理系统99208-计算机毕业设计项目选题推荐(赠源码) 476
  • 2024.9.20 Python模式识别新国大EE5907,PCA主成分分析,LDA线性判别分析,GMM聚类分类,SVM支持向量机 1452
  • java+ssm+mysql智能停车场系统小程序67860-计算机毕业设计项目选题推荐(免费领源码) 647
  • 蓝禾,汤臣倍健,三七互娱,得物,顺丰,快手,游卡,oppo,康冠科技,途游游戏,埃科光电25秋招内推 828
  • CF 231 E Cactus 题解(仙人掌图上找环) 728

最新文章

  • 力扣最热一百题——搜索二维矩阵
  • 力扣最热一百题——除自身以外数组的乘积
  • 面试经典150题——删除有序数组中的重复项
2024
09月 39篇
08月 8篇
07月 11篇
06月 3篇
05月 4篇
04月 16篇
03月 44篇
02月 12篇
01月 26篇
2023年51篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WenJGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家松江区专业玻璃钢雕塑服务至上辽宁玻璃钢卡通雕塑米奇玻璃钢定制3d雕塑珠海小品玻璃钢雕塑玻璃钢雕塑什么价钱便宜黑龙江个性化玻璃钢雕塑定做价格南充品牌玻璃钢卡通雕塑鹰潭公园玻璃钢雕塑价位安宁加工玻璃钢雕塑哪里有中山水上游乐场玻璃钢雕塑玻璃钢动物雕塑手工制作常用玻璃钢花盆厂家直销保山玻璃钢座椅雕塑园林玻璃钢卡通雕塑要求泡沫雕塑翻制玻璃钢流程福建品牌玻璃钢卡通雕塑宝鸡标牌玻璃钢卡通雕塑杭州玻璃钢雕塑厂咨询客服玻璃钢雕塑装饰品厂家玻璃钢雕塑设计网辽阳玻璃钢雕塑多少钱潮州红色玻璃钢雕塑浦东新区玻璃钢雕塑厂家供应安徽仿铜玻璃钢雕塑订做价格包头学校玻璃钢雕塑制作卡通雕塑招财猫玻璃钢雕塑安溪商场美陈制作专业玻璃钢井冈山会师雕塑玻璃钢雕塑制作设备乌鲁木齐气球商场美陈哪家靠谱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化