分享

Python|近三年蓝桥杯B组题目分析报告

 算法与编程之美 2020-09-25

前言

蓝桥杯作为连接企业和高校的一项重大比赛,在各大高校有着很大的重视程度,大学期间这项赛事的奖项含金量也很高,是对个人能力的极大肯定。蓝桥杯赛事的竞争也十分巨大,想获奖不仅要有出众的能力,还需要用正确的方法,了解知识点和难度部分。这些都是获奖的基本要领。下面笔者将近三年来蓝桥杯B组题目的知识点和难度进行分析。

难度分析

我们粗略将这些题分为低、中、高三个难度,低难度属于送分题,而且大部分属于填空题,作答时只需提交答案。
首先来说低等难度的题,这种题一般是只需提交一个数字或者一个字符串填空题,都是考察考生一般的逻辑思维能力和对一般数学和编程的应用。
中等难度是占比最大的一部分,它由个别填空题和大量编程题组成,这种难度的题会大量消耗考生时间,而且在相应编程题部分会设下障碍,让考试每道题都出现分数差距。这种障碍一般都体现在时间复杂度的优化上,时间复杂度越低,那么这道题得分就会越高。比如拿19B组第五题递增三元组做说明,题目如下:
给定三个整数数组

A = [A1, A2, ... AN], 

B = [B1, B2, ... BN], 

C = [C1, C2, ... CN]

请你统计有多少个三元组(i, j, k) 满足:

1. 1 <= i, j, k <= N  

2. Ai < Bj < Ck  

看到此题,笔者脑海里瞬间冒出三层for循环暴力解决,但是这样只会得到三分之一的分数,想得全分则需要另一种时间复杂度更低的循环,此题应该使用两个两层for循环才能拿到全分。
最后是高难度题目,这类题目一般是给冲击国赛和国际赛的同学准备的,这类题目特点就是难。但也不是无法解决,综合运用算法以及对题目分析全面,还是有机会在限定时间内完成该题。比如2020年的模拟大赛第九题序列计数,此题需要熟练掌握DFSBFS,而且在此基础上运用记忆化搜索才能通过百分之八十的样例数据。

知识点分析

笔者统计了18年、19B组和20年的模拟题,基本可以确定前两道题为简单送分题,中间有56道题为中等难度,最后三道题目为高难度题目。
低难度题目涵盖知识点主要有各种单位转换,时间转换,统计推算等低难度知识,就不详细阐述了。
而中等难度涵盖了许多需要逻辑思维的题目,对各种算法要求还算不高,这种难度的题大多能使用暴力枚举去解决,但是for循环层数超过三层必须想办法优化。其次DFSBFS这两种搜索算法也是常考点,比如19年的迷宫。哈希表和双指针也是常考,还有各种排序算法以及贪心算法,在这部分题目里也经常出现。
在高难度的题目中,DFSBFS这两大搜索算法也是经常出现,除此之外还有动态规划,回溯算法等,有些题目还会涉及到分治策略,而且都是结合到其他思维方式,想拿全分很困难,重点还是应该放到前面两种难度的题上。

综上,各个难度知识点主要涉及如下;

1)低:一般的数学知识和逻辑思维

2)中:枚举、DFSBFS、哈希表、双指针、贪心算法、各大排序算法

3)高:DFSBFS、动态规划、回溯算法、分治策略

总结

一般的同学参加蓝桥杯尽全力做好低中难度的题目即可,那么怎样克服中难度里面的时间复杂度问题?找leetcode就对了,时间复杂度不达最优不让提交,在上面练题效果很好。

END

主  编   |   王楠岚

责  编   |   刘仕豪

能力越强,责任越大。实事求是,严谨细致。    

                                                  ——where2go 团队


微信号:算法与编程之美          

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多