蓝桥杯到底难不难?(内附第11届省赛+国赛真题解析)
裸睡的猪
共 3250字,需浏览 7分钟
· 2021-02-09
一、为什么参加蓝桥杯
二、成绩如何
三、蓝桥杯真题解析
四、蓝桥杯与ACM
五、参加有何用
一、为什么去参加蓝桥杯?
二、成绩如何?
三、蓝桥杯难度如何?
1.十一届省赛题目:单词分析
解题思路:
很多比赛题目不会直接告诉你该怎么做,都是参杂一些故事,这就需要你有很好的审题能力,提炼有用信息,然后再分步拆解,最后用代码实现!
审题:找出一串小写字符串中 出现频率最高的字母,如果有相同次数的,则按字母排序顺序输出靠前那个! 拆解:首先获取每个字母出现的次数,然后比较谁出现次数最多,如果出现相同次数可以直接比较字母的ascii码。
方案一:
这种解题思路是比较传统的路线,很容易想到的,基本没用什么函数实现,这里猪哥再提供一种用Python函数去解题的方法:
方案二:
这种解题方案思路就是:
先使用string.ascii_lowercase拿到26个小写英文字母 每个字母调用word.count max函数获取count最大的那个字母 如果有相同次数的字母也不必担心,因为string.ascii_lowercase本身就是按字典序排的(就是abcd…)
方案一是遍历所有字母,方案二是遍历26个字母,所以在数据量少的时候可能方案一有优势,数据量大了肯定是方案二更优,而且方案二只有两行代码,逼格满满!
2.十一届国赛决赛题目:蓝跳跳
这是一道十一届蓝桥杯Python大学组国赛的题目,国赛难度相对高,审题尤其重要!
最大跳跃长度为k 每次跳完总长度为L 不能连续两次跳跃长度大于等于p 不同的方案有多少种(步数或某个位置不同即可)
这里猪哥解释下 L6:小于p 即代表:L=6 第一步小于p的方案数,L5总 即表示:L=5 的总方案数,这是猪哥为了方便记忆随手写的!
上面我们找到 第一步小于p 与 第一步大于等于p 的规律,下一步就是转化为代码形式!
上图可看出,我们提取到了两个 for 循环的代码,是分别计算 第一步小于p 和 第一步大于等于p 的代码,下面猪哥把两个加起来就是总方案数,所以这两个for算是核心代码了!
上面我们推导出了核心代码,以及需要存储的数据,接下来我们把全代码写出来!
这里猪哥直接截图,这样方便阅读,如需源码文末可以获取。
基本每行代码都有注释,自己多看几遍应该可以理解!
我们把 k=5, p3, L=10 输入,结果输出 397,与题目中给出的答案一致。
但是我们可以看到题目最后给出了测评规模,如果我们用这套代码去测试L=10^18 内存肯定超过512Mb的要求,原因是我们在代码开始的地方生成了一个L长度的二维数组,如果L越大数组就越长,这里我们考虑是否可以优化一下!
下图最底部猪哥增加了数组长度优化的推导,因为我们在计算当前数据时,只是需要前几个数据,再往前的数据其实是用不上的,所以我们将数组长度缩到最短为 k+1,这样就可以做到循环写入,节省空间!
空间优化后的代码:
将数组长度调整为k+1,增加一个循环的角标,循环写入数据!
关于算法时间的优化猪哥没有仔细研究,但感觉还有优化的空间,如果小伙伴们有更好的优化方案也欢迎讨论交流!
四、蓝桥杯与ACM比较?
ACM是团队协作的成果,而蓝桥杯则直接是个人能力的体现。蓝桥杯更适合不同等级选手:省赛难度相对低,对新手友好;国赛难度大,适合高端玩家展示个人实力,近几年很多ACM选手参加蓝桥杯也证明如此!
虽然有越来越多的大佬参赛,但蓝桥杯从来不是只为大佬服务的精英赛。从蓝桥杯的分组赛制上也能看出来,它更希望通过不同的组别,让每个选手都能在比赛中找到自己的位置,收获自信,了解不足,从而实现以赛促学。
五、参加蓝桥杯有何用?
很多人问猪哥要不要参赛,报名费够吃一顿大餐,去比赛十有八九会打水漂。猪哥觉得,参赛最重要的是过程。常听别人说:过程比结果更重要,参加蓝桥杯就是这样一个典型的例子。
对于全心备战的选手来说,前期刷题、正式比赛、赛后复盘,这是一条不断认清自我,完善自我的求知之路。这条路走得越远圈子越大,见识和眼界也变的越广,在此过程中还能结识一群志趣相投的好友,大学生活也因此变得充实而愉快,在不知不觉中你渐渐变强,也渐渐变成同学口中的大神!
猪哥在自学完Java后参加蓝桥杯虽然只拿了省三,但是真的对自己鼓舞很大,因为那是我第一次得到了认可,得到了同学的夸奖,对自己的编程能力有了一定的信心。
在后来找工作时,我把比赛的经历写进了求职简历中,不但给面试增添了一些自信,入职后还被任命为开发小组长的职务!
猪哥以一个过来人的经验建议大家:如果你现在还在上大学,一定要参加一次蓝桥杯,从现在到3月底刚好是第十二届蓝桥杯大赛的报名阶段。从这一刻开始,让自己变成自己仰慕的那个人!
评论
豆瓣9.7,这部Java神作第3版重磅上市!
文末赠书Java 程序员们开年就有重磅好消息,《Effective Java 中文版(原书第 3 版)》要上市啦!该书的第1版出版于 2001 年,当时就在业界流传开来,受到广泛赞誉。时至今日,已热销近20年,本书第 3 版已是 Java 程序员的必读神书,被誉为“Java 四大名著之一”,甚至连
编码之外
0
美团还是快手,选个offer真纠结!
JavaGuide官方网站:javaguide.cn当面临多个还不错的 offer 时,做起选择是真心让人纠结,真心祝福各位都能有这种纠结的时候。纠结是正常的,毕竟选择一个 offer 的考虑因素太多了,并不仅仅是说谁给的钱多一点就跟谁干。如果真这么简单的话,那也就没啥可纠结的了。这篇文章我会结合一
JavaGuide
0
好未来测开一面,挺简单!(0428面试原题解析)
大家好,我是二哥呀。今天继续给大家分享春招面试题《好未来测开一面原题》,附详细答案,我会用通俗易懂+手绘图的方式,让天下所有的面渣都能逆袭 😁二哥的 Java 面试指南内容较长,建议正在冲刺 24 届春招和 25 届暑期实习、秋招的同学先收藏起来,面试的时候大概率会碰到,1、二哥的 Linux 速查
沉默王二
0
人生首个半程马拉松,完赛!
37岁,完成了人生中的首个半程马拉松赛,净成绩是202,虽然没破2,但自认为也算牛逼了。我今年1月份开始练习跑步,从 5 公里开始跑,一周跑两三次,持续了2个月左右,后面开始增加了点难度,跑8公里、10 公里,12 公里是我跑过最远的距离,到今天的总跑量还不到 200 公里。其实这次去跑马拉松完全是
python之禅
2
springboot第70集:字节跳动后端三面经,一文让你走出微服务迷雾架构周刊
创建一个使用Kubernetes (K8s) 和 Jenkins 来自动化 GitLab 前端项目打包的CI/CD流水线,需要配置多个组件。下面,我将概述一个基本的设置步骤和示例脚本,以帮助你理解如何使用这些工具整合一个自动化流程。前提条件确保你已经有:Kubernetes 集群:用于部署 Jenk
程序源代码
0
【第129期】程序员的新宠:三款终端工具,让你告别Xshell!
概述 WindTerm:跨平台的SSH利器 首先介绍的是WindTerm,这是一款使用C语言开发的跨平台SSH客户端。它不仅完全免费,而且没有商业使用的限制。WindTerm支持SSH v2、Telnet、Raw Tcp等协议,而且性能出色,甚至超过了FinalShell和Electerm。功能
前端微服务
0
985学历真好用,一面答的再差也能过?
JavaGuide官方网站:javaguide.cn相对其他行业如律师、金融等,程序员求职面试对学历的包容度还是相对较高的,尤其是在过去几年。通常情况下,如果候选人在其他方面(如实习经历、项目经历、竞赛经历)表现突出,可以在一定程度上弥补学历的不足。不过,由于现在面试越来越卷,一些大厂、国企和研究所
JavaGuide
1
美国司法部重判币安创始人CZ,他到底做错了什么?
注:4月24日,美国司法部表示币安创始人兼前首席执行官赵长鹏应在监狱服刑三年(36个月),根据给出的理由显示,美国司法部律师认为赵长鹏帮助币安违反联邦制裁和洗钱法,并称其必须付出更大的代价,所以应该提高刑期。就在审判前,CZ在写给负责此案件的法官理查德· A · 琼斯的一封信中,为自己的「错误决定」
区块链头条
3