蓝桥杯学习大纲

简介: 致酷德与热爱算法、编程的小伙伴们

 (致酷德与热爱算法、编程的小伙伴们)

在查阅了相当多的资料后,发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以,干脆自己整理一篇,欢迎大家补充!

一、学习模块

(基础算法思想+蓝桥真题练习)

基础算法篇:

1、枚举算法

2、模拟算法

3、双指针算法

4、链表-算法

5、哈希表-算法

6、贪心算法

7、图论-dfs/bfs 算法

8、图论算法体系:并查集、生成树、排序与路径搜索全解析

(持续更新中)

真题训练篇:

1、2024第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

2、2023第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(真题&题解)(C++/Java题解)-省赛

3、2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题&题解)(C++/Java题解)-国赛

4、2022第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(题解&解析)

5、2021第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

6、蓝桥杯考前复盘


蓝桥杯学习大纲

一、学习模块

二、题型分布:

三、蓝桥必备高频考点

四、思维导图:

思维导图 - 大学C组:

思维导图 - 大学B组:

五、自用对比

组别:大学C组

组别:大学B组

六、蓝桥杯知识点总览


二、题型分布:

题型分布为填空题、编程题等。 这些题型考察的知识点各不相同。

填空题考察细节理解和计算能力,而编程题则重点考察编程实现和算法理解能力。 在蓝桥杯真题中,填空题的数量相对较少,而编程题则是主要的考察形式。(填空题基本可以在纸上算出来,但为防止粗心,可用暴力的方法在计算机上,运行一遍,用于验证。编程题,如果实在写不出,可以用骗分技巧

其次,我们还可以根据真题的难度来进行分类。 蓝桥杯真题的难度可以分为三个等级:基础题、中等题和难题。

蓝桥杯C/C++题型预览(C++组与Java组题型相似)

三、蓝桥必备高频考点

我们以此为重点学习方向:

1. 基础算法

枚举 模拟 贪心 递归 分治
构造 前缀和 差分

2. 搜索与排序

线性搜索 二分法 BFS DFS 回溯剪枝
深搜优化 记忆化搜索 位运算 冒泡排序 归并排序
快速排序 桶排序

3. 动态规划

编辑距离 最长不重复子串 整数背包 矩阵连乘 最长公共子序列
最长公共子串 最长上升子序列 最长回文子序列 最长回文子串 回文分割
最大子段合 最大正方形子矩阵 滚动数组
数位dp 概率dp 树形dp 区间dp 状压dp

4. 数学

GCD&LCM

素数判断 素数生成 分解质因数 费马小定理
扩展欧几里得 逆元 高斯消元 整数拆分 模运算

5. 组合数学

容斥原理 鸽巢定理 乘法原理 调和级数 斐波那契数

6. 图论

邻接矩阵 关联矩阵 邻接表 链式前向星 有向无环图
判圈 拓扑排序 最短路径 Prim Kruskal
Dijkstra(堆优化) Bellman Floyd SPFA

7. 数据结构

数组 链表 队列 先队列
块状链表 LCA 并查集 线段树 树状数组
二叉树 哈希

8. 几何

点和向量 点积、叉积 点和线的关系 多边形 面积、周长、体积

判点在多边形

多面体内外

坐标旋转

网上流传着这么一句话

其实要考的知识点,还有很多。下面那句话过不了审,我截屏下来了:

image.gif 编辑

四、思维导图:

思维导图能更好的理解学习方向

思维导图 - 大学C组:

大学C组主要分三部分,学习顺序为:数据结构基础->入门数学->其他算法

image.gif 编辑

思维导图 - 大学B组:

在C组的基础上,加上这些。

image.gif 编辑我知道,大家看到这里,不免会有些焦虑,大家可以借鉴一下这个:

不要焦虑哦!可以最好将算法当作兴趣来培养。

下面这张图为笔者朋友整理的一张,挺简洁,也可作为参考。

image.gif 编辑

五、自用对比

组别:大学C组

知识点及难度(1-10难度系数依次递增)

1、枚举[1-3]

2、排序

(1)冒泡排序[2]

(2)选择排序[3]

(3)插入排序[3]

3、搜索(bfs、dfs)[1-5]

4、贪心[1-5]

5、模拟[1-3]

6、二分[2-5]

7、DP(普通一维数组)[3-5]

8、高精度[1-5]

9、数据结构

(1)栈[2-4]

(2)队列[2-5]

(3)链表[3-5]

10、数学(1)初等数论[3-5]

组别:大学B组

11、排序

(1)归并排序[4-5]

(2)快速排序[4-5]

(3)桶排序[4]

(4)堆排序[4]

(5)基数排序[4-5]

12、搜索

(1)剪枝[4-6]

(2)双向BFS[5-6]

(3)记忆化搜索[5]

(4)迭代加深搜搜[5-6]

(5)启发式搜索[7]

13、DP

(1)背包 DP[4-6]

(2)树形 DP[4-6]

(3)状压 DP[5-6]

(4)数位 DP[5-6]

(5)DP的常见优化[7]

14、字符串

(1)哈希[4-5]

(2)kmp[4-6]

(3)manacher[4-6]

15、图论

(1)欧拉回路[5-7]

(2)最小生成树[5-7]

(3)单源最短路及差分约束系统[5-7]

(4)拓扑排序[5-7]

(5)二分图匹配[7]

(6)图的连通性问题(割点、桥、强联通分量)[7]

(7)DFS序[5-7]

(8)最近共同祖先[5-7]

16、数学

(1)排列组合排[5-6]

(2)二项式定理[6]

(3)容斥原理[6-7]

(4)模意义下的逆元[5]

(5)矩阵运算[6-7]

(6)高斯消元[7]

17、数据结构

(1)ST表

(2)堆[5-6]

(3)数状数组[5-6]

(4)线段树[6-7]

(5)Trie树[5-7]

(6)并查集[5-6]

(7)平衡树(利用系统自带的标准库实现简单平衡树)[5-7]

18、计算几何

(1)基础计算和基本位置关系判定[6-7]

(2)概率论[7++]

(3)博弈论[7++]

六、蓝桥杯知识点总览

以下为蓝桥杯所有考点,可根据兴趣,借鉴补充题目。

1. 基础算法

  • 枚举:通过遍历所有可能的情况来解决问题。
  • 模拟:按照题目要求模拟实际操作过程。
  • 贪心:在每一步选择中都采取最优(即最有利)的选择,从而希望导致结果是全局最优解。
  • 递归:通过函数自己调用自己来解决问题。
  • 分治:将原问题分解为若干个规模更小但结构相同的子问题,递归解决这些子问题,然后将子问题的解合并得到原问题的解。

2. 搜索与排序

  • 子集生成:生成一个集合的所有子集。
  • 线性搜索:在数组或列表中从头到尾依次查找元素。
  • 二分法:在有序数组中通过折半查找的方式快速定位元素。
  • 三分法:将数组分成三部分进行查找或排序。
  • BFS(广度优先搜索):从根节点开始,逐层遍历所有节点。
  • DFS(深度优先搜索):从根节点开始,尽可能深地搜索树的分支。
  • 回溯剪枝:在深度优先搜索中,通过剪枝减少搜索空间,提高搜索效率。
  • 记忆化搜索:通过缓存中间结果,避免重复计算,提高搜索效率。
  • IDA*算法:一种迭代加深的 A* 算法,结合了深度优先搜索和 A* 算法的优点。
  • 位运算:利用位操作进行高效计算。
  • 按位压缩存储状态:通过位运算压缩存储状态,减少内存占用。
  • 选择排序:每次从未排序部分选择最小(或最大)元素放到已排序部分。
  • 冒泡排序:通过相邻元素之间的比较和交换来排序。
  • 归并排序:通过递归地将数组分成两半,排序后再合并。
  • 快速排序:通过选择一个基准元素,将数组分成两部分,一部分小于基准,另一部分大于基准,然后递归排序。
  • 堆排序:利用堆这种数据结构进行排序。
  • 计数排序:通过统计每个元素出现的次数来进行排序。
  • 桶排序:将元素分布到若干个桶中,每个桶再分别排序。

3. 动态规划

  • 编辑距离:计算两个字符串之间,将一个字符串转换成另一个字符串所需的最少编辑操作次数。
  • 最长不重复子串:在字符串中找到最长的不重复字符子串。
  • 整数背包:解决背包问题的一种方法,背包容量和物品重量都是整数。
  • 矩阵连乘:计算矩阵连乘的最小代价。
  • 最长公共子序列:在两个序列中找到最长的公共子序列。
  • 最长公共递增子序列:在两个序列中找到最长的公共递增子序列。
  • 最长上升子序列:在序列中找到最长的上升子序列。
  • 最长回文子序列:在字符串中找到最长的回文子序列。
  • 最长回文子串:在字符串中找到最长的回文子串。
  • 回文分割:将字符串分割成多个回文子串。
  • 最大子段和:在数组中找到连续子数组的最大和。
  • 最大正方形子矩阵:在矩阵中找到最大的正方形子矩阵。
  • 最长链对:在一组区间中找到最长的不重叠区间链。
  • 最大递增子序列和:在序列中找到递增子序列的最大和。
  • 滚动数组:通过使用较小的数组来减少空间复杂度。
  • 数位dp:通过动态规划解决与数字位数相关的问题。
  • 概率dp:通过动态规划解决概率相关的问题。
  • 树形dp:在树结构上进行动态规划。
  • 区间dp:在区间上进行动态规划。
  • 状压dp:通过状态压缩进行动态规划。
  • 插头dp:通过插头状态进行动态规划。
  • 斜率优化:通过斜率优化动态规划的转移方程。
  • 平行四边形优化:通过平行四边形性质优化动态规划的转移方程。
  • 单调队列优化:通过单调队列优化动态规划的转移方程。
  • 数据结构优化:通过数据结构优化动态规划的实现。

4. 数学

  • GCD&LCM:最大公约数和最小公倍数。
  • 素数判断:判断一个数是否为素数。
  • 素数生成:生成一定范围内的所有素数。
  • 分解质因数:将一个数分解为质因数的乘积。
  • 欧拉定理:计算欧拉函数的值。
  • 费马定理:费马小定理及其扩展。
  • 扩展欧几里得:求解线性同余方程。
  • 逆元:计算模逆元。
  • 随机素数测试和大数分解:通过随机测试判断素数,以及大数分解。
  • 高斯消元:通过高斯消元法解线性方程组。
  • 偶合方程:解偶合方程组。
  • 整数拆分:将一个整数拆分为多个整数的和。
  • 大步小步算法:解决某些特定的数学问题。
  • 中国剩余定理:解同余方程组。
  • 原根:计算原根。
  • 快速数论变换:通过快速数论变换进行高效计算。
  • 线性丢番图方程:解线性丢番图方程。
  • 模运算:进行模运算。
  • 卢卡斯定理:计算组合数的模。
  • 杜教筛:通过杜教筛法计算某些特定的数学问题。
  • 威尔逊定理:通过威尔逊定理判断素数。
  • 米勒罗宾随机素数测试:通过米勒罗宾测试判断素数。
  • 完全数:判断一个数是否为完全数。
  • 连分数:处理连分数。

5. 组合数学

  • 容斥原理:通过容斥原理计算集合的大小。
  • 鸽巢定理:通过鸽巢定理解决某些组合问题。
  • 乘法原理:通过乘法原理计算排列和组合的数量。
  • 斯特林数:计算斯特林数。
  • 卡特兰数:计算卡特兰数。
  • 斐波那契数:计算斐波那契数。
  • 幻方:生成幻方。
  • 莫比乌斯反演:通过莫比乌斯反演解决某些组合问题。
  • 母函数:通过母函数解决某些组合问题。
  • 调和级数:计算调和级数。

6. 图论

  • 邻接矩阵:通过邻接矩阵表示图。
  • 关联矩阵:通过关联矩阵表示图。
  • 邻接表:通过邻接表表示图。
  • 链式前向星:通过链式前向星表示图。
  • 有向无环图:处理有向无环图。
  • 欧拉图:判断图是否为欧拉图。
  • 判圈:判断图中是否存在环。
  • 割点:找到图中的割点。
  • 割边:找到图中的割边。
  • :找到图中的桥。
  • 双连通分量:找到图中的双连通分量。
  • 强连通分量:找到图中的强连通分量。
  • 有向图的强连通分量:找到有向图中的强连通分量。
  • 拓扑排序:对有向无环图进行拓扑排序。
  • 二分图判定:判断图是否为二分图。
  • 最短路径:计算图中的最短路径。
  • 连通分量:找到图中的连通分量。
  • 次小生成树:找到图中的次小生成树。
  • 曼哈顿最小生成树:找到曼哈顿距离下的最小生成树。
  • Dijkstra(堆优化):通过堆优化的 Dijkstra 算法计算最短路径。
  • Bellman:通过 Bellman-Ford 算法计算最短路径。
  • Floyd:通过 Floyd-Warshall 算法计算最短路径。
  • 差分约束:通过差分约束解决某些问题。
  • SPFA:通过 SPFA 算法计算最短路径。
  • 最小费用最大流:计算图中的最小费用最大流。
  • 二分图匹配:在二分图中找到最大匹配。
  • 欧拉路:找到图中的欧拉路。

7. 数据结构

  • 数组:基本的数据结构,用于存储和访问数据。
  • 链表:通过节点链接存储数据。
  • :后进先出的数据结构。
  • 队列:先进先出的数据结构。
  • 先队列:优先队列,用于存储和访问数据。
  • 双端队列:可以在两端进行插入和删除操作的数据结构。
  • 块状链表:通过块状结构优化链表的访问。
  • :通过堆结构存储和访问数据。
  • 哈希:通过哈希表存储和访问数据。
  • LCA:通过 LCA 算法解决某些树结构问题。
  • 跳跃表:通过跳跃表优化链表的访问。
  • 并查集:通过并查集解决某些集合问题。
  • 字典树:通过字典树存储和访问字符串数据。
  • 线段树:通过线段树解决区间查询和更新问题。
  • 树状数组:通过树状数组解决某些数组问题。
  • 莫队算法:通过莫队算法解决某些数组问题。
  • 平衡二叉树:通过平衡二叉树存储和访问数据。
  • 二叉搜索树:通过二叉搜索树存储和访问数据。
  • Treap树:通过 Treap 树存储和访问数据。
  • 二叉树:基本的树结构。
  • 笛卡尔树:通过笛卡尔树解决某些数组问题。
  • 划分树:通过划分树解决某些数组问题。
  • 表达式树:通过表达式树解决某些表达式问题。
  • 替罪羊树:通过替罪羊树解决某些树结构问题。
  • 伸展树:通过伸展树解决某些树结构问题。
  • 动态树:通过动态树解决某些树结构问题。
  • 左偏堆:通过左偏堆解决某些堆问题。
  • 可并堆:通过可并堆解决某些堆问题。
  • 主席树:通过主席树解决某些树结构问题。
  • 树链剖分:通过树链剖分解决某些树结构问题。
  • KD树:通过 KD 树解决某些空间问题。
  • 树套树:通过树套树解决某些树结构问题。
  • FHQ_Treap:通过 FHQ_Treap 解决某些树结构问题。

8. 几何

  • 点和向量:处理点和向量的基本操作。
  • 点积、叉积:计算点积和叉积。
  • 点和线的关系:判断点和线的位置关系。
  • 多边形:处理多边形的基本操作。
  • 三角形内心、外心、重心、垂心:计算三角形的内心、外心、重心和垂心。
  • 费马点:计算费马点。
  • 面积、周长、体积:计算几何图形的面积、周长和体积。
  • 判点在多边形内外:判断点是否在多边形内部或外部。
  • 三角剖分:对多边形进行三角剖分。
  • 梯形剖分:对多边形进行梯形剖分。
  • 多边形重心:计算多边形的重心。
  • 多边形切割:对多边形进行切割操作。
  • 多面体体积:计算多面体的体积。
  • 坐标旋转:对坐标进行旋转操作。
  • 凸包:计算点集的凸包。
  • 最近点对:找到点集中的最近点对。
  • 旋转卡壳:通过旋转卡壳算法解决某些几何问题。
  • 半平面交:计算半平面的交集。
  • 最小圆覆盖:找到覆盖点集的最小圆。
  • 三维点和向量:处理三维点和向量的基本操作。
  • 三维点积&叉积:计算三维点积和叉积。
  • 最小球覆盖:找到覆盖点集的最小球。
  • 三维凸包:计算三维点集的凸包。

1、第十六届蓝桥杯大赛软件赛(编程类)


指导思想:

农村包围城市,武装夺取政权”,教员的这句话太有指导含义了,大概意思就是星星之火可以燎原。从简单题开始做,不要好高骛远!当量变引起质变那一刻,蓝桥杯必能拿下!


目录
相关文章
|
1天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
10096 24
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
13天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
5828 14
|
21天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
22754 119