赞
踩
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于腾讯云,作者:算法与编程之美
蓝桥杯作为连接企业和高校的一项重大比赛,在各大高校有着很大的重视程度,大学期间这项赛事的奖项含金量也很高,是对个人能力的极大肯定。蓝桥杯赛事的竞争也十分巨大,想获奖不仅要有出众的能力,还需要用正确的方法,了解知识点和难度部分。这些都是获奖的基本要领。下面笔者将近三年来蓝桥杯B组题目的知识点和难度进行分析。
我们粗略将这些题分为低、中、高三个难度,低难度属于送分题,而且大部分属于填空题,作答时只需提交答案。
首先来说低等难度的题,这种题一般是只需提交一个数字或者一个字符串填空题,都是考察考生一般的逻辑思维能力和对一般数学和编程的应用。
中等难度是占比最大的一部分,它由个别填空题和大量编程题组成,这种难度的题会大量消耗考生时间,而且在相应编程题部分会设下障碍,让考试每道题都出现分数差距。这种障碍一般都体现在时间复杂度的优化上,时间复杂度越低,那么这道题得分就会越高。比如拿19年B组第五题递增三元组做说明,题目如下:
A = [A1, A2, … AN],
B = [B1, B2, … BN],
C = [C1, C2, … CN],
请你统计有多少个三元组(i, j, k) 满足:
1 <= i, j, k <= N
Ai < Bj < Ck
看到此题,笔者脑海里瞬间冒出三层for循环暴力解决,但是这样只会得到三分之一的分数,想得全分则需要另一种时间复杂度更低的循环,此题应该使用两个两层for循环才能拿到全分。
最后是高难度题目,这类题目一般是给冲击国赛和国际赛的同学准备的,这类题目特点就是难。但也不是无法解决,综合运用算法以及对题目分析全面,还是有机会在限定时间内完成该题。比如2020年的模拟大赛第九题序列计数,此题需要熟练掌握DFS与BFS,而且在此基础上运用记忆化搜索才能通过百分之八十的样例数据。
笔者统计了18年、19年B组和20年的模拟题,基本可以确定前两道题为简单送分题,中间有5、6道题为中等难度,最后三道题目为高难度题目。
低难度题目涵盖知识点主要有各种单位转换,时间转换,统计推算等低难度知识,就不详细阐述了。
而中等难度涵盖了许多需要逻辑思维的题目,对各种算法要求还算不高,这种难度的题大多能使用暴力枚举去解决,但是for循环层数超过三层必须想办法优化。其次DFS和BFS这两种搜索算法也是常考点,比如19年的迷宫。哈希表和双指针也是常考,还有各种排序算法以及贪心算法,在这部分题目里也经常出现。
在高难度的题目中,DFS和BFS这两大搜索算法也是经常出现,除此之外还有动态规划,回溯算法等,有些题目还会涉及到分治策略,而且都是结合到其他思维方式,想拿全分很困难,重点还是应该放到前面两种难度的题上。
综上,各个难度知识点主要涉及如下;
(1)低:一般的数学知识和逻辑思维
(2)中:枚举、DFS、BFS、哈希表、双指针、贪心算法、各大排序算法
(3)高:DFS、BFS、动态规划、回溯算法、分治策略
一般的同学参加蓝桥杯尽全力做好低中难度的题目即可,那么怎样克服中难度里面的时间复杂度问题?找leetcode就对了,时间复杂度不达最优不让提交,在上面练题效果很好。
END
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。