牛客网acm模式需要自己写输入输出么 牛客网acm模式

hello大家好呀,我是小楼。

上周参加了一个区的程序员技能比赛的初赛,其实就是算法比赛,虽然最后结果是过了初赛,但过程真是一言难尽啊。

这次的算法比赛和ACM非常类似,虽然我大学是数学专业,虽然大学也修过ACM这门课,但是我的算法是真的不行,很菜很菜的那种。

牛客网acm模式需要自己写输入输出么 牛客网acm模式

好在这次比赛是组(抱大腿)队模式,3人一组,3个小时时间,一共7道算法题,1入门,2简单,2中等,2困难。

10分钟写出入门题,但…

由于我知道我比较菜,所以比赛一开始,我就挑了一个看起来最简单的题目做,难题交给队友。

结果是3个小时过去,这个看起来最简单的题目,愣是没有做出来,下面就结合这道题讲讲我的心路历程。

这道题的描述是这样的:

牛客网acm模式需要自己写输入输出么 牛客网acm模式

看起来文字很多,其实要表达的很简单,就是输入一些成绩,每个成绩输进去时,如果超过全班最好成绩则输出prefect,如果超过自己的最好成绩则输出great,如果没超过自己最好成绩则输出bad。

是不是很简单?用一个max变量保存全班最好成绩,用一个map保存每个人的最好成绩,不就解决了吗?

不过这是我第一次用这个oj系统,连用户都是刚注册的,所以我还特地看了一会输入输出的demo,这次比赛只能使用ACM的输入输出模式,例如如果用的是Go语言,输入输出应该是这样:

牛客网acm模式需要自己写输入输出么 牛客网acm模式

当一些key存入map时,会先对key计算hash值,在map中找到对应的hash槽,这个槽之后一般是个链表(有的语言也会做一些优化成树状,这里我们简化为链表),因为不同的key的hash值可能会重复(冲突),冲突了只能把key排成一个链表,每次查找时都要遍历链表。

所以有没有可能,设计者给出了一堆hash值重复的name,数量又多,导致每次插入、查找时都要遍历链表,性能下降,导致超时?

于是再仔细审题,我发现输入的姓名和成绩是有限制的:

name保证长度不超过6,仅由小写英文字母组成,每个名字代表唯一一个同学

x为1位小数,0≤x≤300

name最长为6,且为小写字母,这点给了我一点启发,能不能让查询map变成O(1)复杂度?

显然可以的,小写字母范围为a~z,如果看成数字就是1-26,也就是27进制,所以每个name可以表示为一个27进制的数,这样就可以把所有人的成绩放到一个大数组里去,按name的27进制进行O(1)的查找。

为什么是27进制而不是26,因为name没说是多少位,比如只有5位,那空出的一位怎么表示?只能用0表示了,a-z就是1-26,合起来是27进制。

参考10进制计算法则,27进制应该这样计算(以roshi为例):

牛客网acm模式需要自己写输入输出么 牛客网acm模式

结果竟然报错了,我当时不理解,事后理解了,我们暂且不说,后面会说到原因。

就是因为这个报错不明不白,明明能测试通过,到底哪里理解有偏差?亦或是内存超了?

优化内存占用

上面的代码用到了2个数组,一个存最大值,一个存值是否存在,一个数组是1513361KB,2个就是3026722KB,是最大内存限制的5.7倍

var scores [387420488]int32var exist [387420488]int32

exist数组可以用boolean类型,分数最大值0<=0<=300,int16足矣

大小 范围 int8 1字节 -128 ~ 127 int16 2字节 -32768 ~ 32767 int32 4字节 -2147483648 ~ 2147483647

如果是这个组合,将占用 1135020KB,是上限的2倍多,还是有点超,先试试:

牛客网acm模式需要自己写输入输出么 牛客网acm模式

还是一样,难道是我算法有问题?没道理啊。到这里我实在是没招了,3小时也耗尽了,比赛结束。

赛后思考

赛后,我拿着这道题去找了一位刚入职字节的朋友,想着刚去字节应该刷过不少题吧,果然大佬就是大佬,给出了一个有新意的思路,用前缀树做:

牛客网acm模式需要自己写输入输出么 牛客网acm模式
最后

过程虽然曲折,但最终还是解决了这个入门题,而且还尝试着用几种方法来解,虽然不尽如人意,但终究还是有点收获。

当然我们组的小伙伴也很给力,做出来3道题,我们最终的成绩是排名进了前10%,虽然我只贡献了一点点(没完全做出来也有得分,按通过的用例算,我这题大概拿到了90%的分),也算是可以了,而且还有一道题也可能是因为这个输入被卡了,所以如果这两道卡的题都做出来,估计排名能进前三。

初赛算是过了,接下来准备复赛,如果复赛还有好玩的事情,我再来写一篇文章,哈哈。

这一言难尽的比赛,大家给个赞鼓励下吧。

搜索关注”捉虫大师”,后端技术分享,架构设计、性能优化、源码阅读、问题排查、踩坑实践。

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/174214.html

(0)

相关推荐

  • 服装销售成功案例怎么写 成功服装销售技巧分享

    引言: 服装销售是各种零售业中最具挑战性的之一。在激烈的市场竞争中,从销售技巧细节上产生质变是一个关键因素,能够增加销售量并确保顾客的满意度。在本文中,我们将从四个方面对服装销售成功案例怎么写、成功服装销售技巧分享做详细的阐述。 一、勘察市场:了解顾客需求 1、走进市场 在制定销售计划之前,走进市场了解当前的流行趋势并了解顾客需求至关重要。这可以通过分析最畅…

    2023-05-22
  • 洗车人家加盟靠谱吗,洗车的好处与优势

      随着消费观念的不断进步,以及消费群体的不断年轻化,汽后市场又一次迎来了新的发展。汽车保有量的不断增加,车主保养意识的增强,让其后市场迎来了新一轮的扩张。面对势头大好的汽后市场,创业者们也早已做好准备,打算在汽后市场创出一番天地。而洗车人家作为深耕市场19年的汽后创业品牌,在获得消费者一众好评的同时,却也有不少不放心的创业者担忧洗车人家怎么样,那…

    2023-07-17
  • 赞美荷花的诗句数不胜数的句子

    “接天莲叶无穷碧,映日荷花别样红”,古往今来,赞美荷花的诗句数不胜数,它就是上天赐予大自然的礼物。   一个暑期的傍晚,我随奶奶来到老家的菜园子,无意间发现旁边有一个荷花池。远远望去,池塘就像铺上了一层绿色的地毯。这是一块洒满珍珠的地毯,一片片,一层层,挨挨挤挤。在这块碧绿的地毯上有一群穿着粉红裙子的“小女孩”,她们有的半遮半掩,有的豪迈奔放,个个…

    2023-06-19
  • 加盟连锁店可靠吗(蜜雪加盟咨询电话)

    有一个在群里问,说我加盟别人的餐厅这事靠不靠谱。我理解首先你加盟的一定是中餐厅,我告诉你傻子才去做加盟。 你们看之前陈赫什么郑恺,都是一波套现,傻子买单就跟接盘侠似的。因为这个餐厅如果他足够好,他方法绝对这个品牌够硬,根本不会放加盟。他敢于让人去加盟,就是相当于一个股票我提前让人套现。我对我的股票已经没有信心了,我才做加盟这个事。当然也有意外是什么?我这个品…

    2023-05-28
  • 文胸品牌前十大排名,中国女性内衣市场规模

    根据欧睿国际的数据,2012-2018年中国女性内衣市场复合增长率为8.1%,预计到2022年中国女性内衣市场容量将达到1973亿元。奶糖派创始人兼CEO大白认为,随着国民饮食习惯的变化与女性自我意识的觉醒,中国大杯文胸市场正在快速增长。 「奶糖派」成立于2015年,是一个专做大杯文胸的内衣品牌,2016年7月产品正式上线,目标用户为C罩杯以上的年轻女性。产…

    2023-06-07
  • 兰蔻官网旗舰店,兰蔻黑金系列官网价格

    一个美妆护肤品牌要能被称得上一线,它必须是在整个国际上知名的,仅仅在局部地区或有限区域内被熟悉和销售,那就无法被划归为一线品牌了,比如韩国LG旗下的(WHOO)后,爱茉莉旗下的雪花秀,日本的芙丽芳丝,芳珂(Fancl)等,都只在亚洲地区比较知名和流行。 很多护肤美妆品牌在业务范围上并没有清晰的界限,不存在我是做护肤品的,你是做彩妆的,他是做香水的这样的界定,…

    2023-07-14 创业杂谈
  • 铁观音价格表和图片,一百一斤的铁观音怎么样

    前两天,老杨和大家分享了一篇关于曾经铁观音很火,现在为什么没人喝了的文章,得到了大家积极的反馈。后台有茶友问我,有没有普通老百姓喝得不超过100块钱的铁观音?与此同时,也有不少茶友跟我说,在网上曾经买过99元两斤包邮的铁观音,回来一试,口感太差,实在无法下咽,最后只能扔掉。所以今天老杨就和大家一起来探讨一下,到底低于100块钱一斤的铁观音能不能喝?老百姓的口…

    2023-07-17 创业杂谈
  • 时间管理四象限图怎么画 时间管理四象限图

    来源丨喜马拉雅APP米果文化的精品课《蔡康永的201堂情商课》编辑丨闵静 不知大家在生活中有没有遇到这么一个问题,那就是:每天都觉得很忙,可是为什么越忙,却越迷茫? 比如有同学说:“我快要大学毕业了,既要考虑实习,又要准备毕业论文,焦头烂额,却好像两边都顾不上。” 轻重缓急,竖的是Y轴,横的是X轴。 那么,这个横线和竖线交叉之后自然就分出了四个区间,也就是我…

    2023-02-21 创业杂谈
  • 淘宝客的计费模式有什么优点?

    淘宝客推广是目前比较稳定的一个网赚项目,因为淘宝客的运作模式对大家都是有利的,因为淘宝客推广收费模式双方都能接受,计费方式每个平台都是不一样的,那么淘宝客的计费模式有什么优点? 淘宝客的计费模式有什么优点? 淘宝客推广是一种按成交计费的推广模式,淘宝客只要从淘宝客推广专区获取商品代码,任何买家(包括您自己)经过您的推广(链接,个人网站,博客或者社区发的帖子)…

    2023-02-05
  • 石狮网络营销推广都有哪些公司 石狮网络营销推广公司

    石狮网络是一家专业从事网络营销和推广的公司,拥有多年的经验和技术实力,可以为客户提供各种网络推广服务。本文将从以下四个方面对石狮网络营销推广都有哪些公司进行详细阐述。 一、文化品牌推广公司 文化品牌推广是石狮网络最为主要的业务之一。根据客户的需求和市场特点,石狮网络可以为客户提供创意策划、形象设计、营销推广、新媒体运营等服务。例如,石狮网络为多家知名地产企业…

    2023-05-20
  • 有什么适合女生做的副业,3个适合女生的副业项目

    我总结了一下身边一些副业做得不错的女生。当然这只是一部分,不可能全部写出来,就算写出来,也是一步一步写清楚的。 总觉得做什么项目不重要,重要的是人。 1.与宠物有关 现在宠物市场就不多说了,一袋猫粮比一袋大米贵多了。 我的一个大学同学和他男朋友都是程序员,两个人工资都很低,在上海勉强能站稳脚跟。 她去年辞职,现在月薪2万多,她很喜欢养猫,而且都是稀有品种,之…

    2023-02-01
  • 轻词选品工具亚马逊 轻词选品工具

    说哪个更好用之前,我们首先要先了解下他们软件的特点: Aliprice Aliprice特点介绍 1.价格历史 2.同款 3.带图评论 4.卖家分析 5.图片搜索 6.速卖通销售排行榜 7.支持AliExpress、Lazada、amazon、Shopee等平台,如图所示。 Aliprice支持的平台 Aliseeks 1.图片搜索 2.支持AliExpre…

    2023-02-22