蓝桥杯学习大纲
(致酷德与热爱算法、编程的小伙伴们)
在查阅了相当多的资料后,发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以,干脆自己整理一篇,欢迎大家补充!
一、题型分布:
题型分布为填空题、编程题等。 这些题型考察的知识点各不相同。
填空题考察细节理解和计算能力,而编程题则重点考察编程实现和算法理解能力。 在蓝桥杯真题中,填空题的数量相对较少,而编程题则是主要的考察形式。
其次,我们还可以根据真题的难度来进行分类。 蓝桥杯真题的难度可以分为三个等级:基础题、中等题和难题。
蓝桥杯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. 几何
点和向量 | 点积、叉积 | 点和线的关系 | 多边形 | 面积、周长、体积 |
判点在多边形 多面体内外 | 坐标旋转 |
思维导图:
思维导图能更好的理解学习方向
(本思维导图,由笔者与笔者一个姓马的伙伴合作整理)
三、学习模块
(基础算法思想+蓝桥真题练习)
基础算法篇:
1、枚举
(持续更新中)
四、蓝桥杯知识点总览
以下为蓝桥杯所有考点,可根据兴趣,借鉴补充题目。
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. 几何
-
点和向量:处理点和向量的基本操作。
-
点积、叉积:计算点积和叉积。
-
点和线的关系:判断点和线的位置关系。
-
多边形:处理多边形的基本操作。
-
三角形内心、外心、重心、垂心:计算三角形的内心、外心、重心和垂心。
-
费马点:计算费马点。
-
面积、周长、体积:计算几何图形的面积、周长和体积。
-
判点在多边形内外:判断点是否在多边形内部或外部。
-
三角剖分:对多边形进行三角剖分。
-
梯形剖分:对多边形进行梯形剖分。
-
多边形重心:计算多边形的重心。
-
多边形切割:对多边形进行切割操作。
-
多面体体积:计算多面体的体积。
-
坐标旋转:对坐标进行旋转操作。
-
凸包:计算点集的凸包。
-
最近点对:找到点集中的最近点对。
-
旋转卡壳:通过旋转卡壳算法解决某些几何问题。
-
半平面交:计算半平面的交集。
-
最小圆覆盖:找到覆盖点集的最小圆。
-
三维点和向量:处理三维点和向量的基本操作。
-
三维点积&叉积:计算三维点积和叉积。
-
最小球覆盖:找到覆盖点集的最小球。
-
三维凸包:计算三维点集的凸包。
指导思想:
“农村包围城市,武装夺取政权”,教员的这句话太有指导含义了,大概意思就是星星之火可以燎原。从简单题开始做,不要好高骛远!当量变引起质变那一刻,蓝桥杯必能拿下!
相关文章:

蓝桥杯学习大纲
(致酷德与热爱算法、编程的小伙伴们) 在查阅了相当多的资料后,发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以,干脆自己整理一篇,欢迎大家补充! 一、题型分布: 题型分布为填空…...

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器)的终极解决方案
VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器) 离线下载vscode-server并安装: 如果远程端不能联网可以下载包离线安装,下载 vscode-server 的 url 需要和 vscode 客户端版本的 commit-id 对应.通过 vscode 面板的帮助->关于可以获…...

【多模态处理篇五】【DeepSeek文档解析:PDF/Word智能处理引擎】
你知道吗?全球每天产生的PDF文档超过10亿份,但90%的上班族还在用复制粘贴的笨办法处理文档!DeepSeek文档解析引擎就像给你的电脑装上了"文档翻译官",能把PDF/Word里的文字、表格、公式甚至排版样式都变成AI能理解的"语言"。举个真实场景:法务小姐姐用…...

STM32-心知天气项目
一、项目需求 使用 ESP8266 通过 HTTP 获取天气数据(心知天气),并显示在 OLED 屏幕上。 按键 1 :循环切换今天 / 明天 / 后天天气数据; 按键 2 :更新天气。 二、项目框图 三、cjson作用 https://gi…...

cs106x-lecture14(Autumn 2017)-SPL实现
打卡cs106x(Autumn 2017)-lecture14 (以下皆使用SPL实现,非STL库,后续课程结束会使用STL实现) 1、min Write a function named min that accepts a pointer to a ListNode representing the front of a linked list. Your function should return the …...

基于STM32的智能家居语音系统(单片机毕设)
前言 源代码下载链接: https://download.csdn.net/download/m0_74712453/90071680 需要实物的可以私信博主或者在文章最下方添加好友。 目录 一、项目介绍和演示视频 二、硬件实现 1. 材料材料 2. 原理图和PCB 三、软件实现 1. 代码解析 1.1 main函数 1.2…...

ASP.NET Core 简单文件上传
使用异步 JavaScript 和 XML(AJAX)进行简单的文件上传;用 C# 编写的服务器端代码。 使用AJAX和ASP.NET Core MVC上传文件再简单不过了。这不依赖于jQuery。此代码允许上传多个文件,并与 .NET Core 3.1、.NET 6和.NET 8兼容。 如果…...
2502C++,C++继承的多态性
构 A{单 向量<串>记;元<类 T>静 空 ff(串&a){清理(记);名向量(a,记);串 b{"---ff---"};打印(b);T::g();} };构 B:公 A{元<类 T>静 空 f(){串 a{"错误.txt"};ff<T>(a);} };构 C:公 A{元<类 T>静 空 f(){串 a{"a12.c…...

【机器学习】13.十大算法之一K均值算法(K-means)聚类详细讲解
【机器学习】13.十大算法之一K均值算法(K-means)聚类详细讲解 一摘要二个人简介三K-均值聚类(K-means)3.1-K均值算法的基本原理3.1.1- 聚类分析的目标3.1.2- K - means算法算法原理 四K-means聚类算法的收敛性五证明K均值算法的收…...
Spring扩展点之Mybatis整合模拟
Spring扩展点之Mybatis整合 单独使用MyBaitis模拟整合MyBatis到Spring 单独使用MyBaitis 通过配置文件生成sqlSessionFactory,用sqlSessionFactory开启session。通过session获取到mapper执行对应的sql。 InputStream inputStream Resources.getResourceAsStream(…...
.NET MVC实现电影票管理
.NET MVC(Model-View-Controller)是微软推出的基于 Model-View-Controller 设计模式的 Web 应用框架,属于 ASP.NET Core 的重要组成部分。其核心目标是通过清晰的分层架构实现 高内聚、低耦合 的开发模式,适用于构建可扩展的企业级…...

自媒体账号管理工具:创作罐头使用指南
创作罐头使用指南 1. 关于创作罐头 创作罐头是免费的一站式自媒体运营工具,支持各大自媒体平台多账号管理、全网爆文库、原创检测、视频一键分发、团队管理、各平台数据分析等功能。 2. 安装与注册 2.1. 如何安装创作罐头 从我们的官网下载并安装软件 www.czgts.…...

基于数据可视化+SpringBoot+安卓端的数字化OA公司管理平台设计和实现
博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…...

VSCode离线安装插件
最近在其他电脑设备上部署vscode环境出现问题,在vscode里直接安装插件失败,软件提示如下:(此前已经用此方法安装过中文插件) 这里我们选择手动下载,会自动在浏览器中跳转到该插件的下载链接并自动下载插件&…...

基于Hadoop的汽车大数据分析系统设计与实现【爬虫、数据预处理、MapReduce、echarts、Flask】
文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍爬虫数据概览HIve表设计Cars Database Tables 1. cars_data2. annual_sales_volume3. brand_sales_volume4. city_sales_volume5. sales_volume_by_year_and_brand6. sales_distri…...
SHELL32!Shell_MergeMenus函数分析
SHELL32!Shell_MergeMenus函数分析 UINT Shell_MergeMenus( [in] HMENU hmDst, [in] HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags ); 参数 [in] hmDst 类型: HMENU 要向其添加 hmSrc…...

华为云deepseek大模型平台:deepseek满血版
华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 1、注册: 华为云deepseek大模型平台注册:https://cloud.siliconflow.cn/i/aDmz6aVN 说明:填写邀请码的话邀请和被邀请的账号都会获得2000 万 Tokens;2个帐号间不会与其他关联…...

AutoGen 技术博客系列 八:深入剖析 Swarm—— 智能体协作的新范式
本系列博文在掘金同步发布, 更多优质文章,请关注本人掘金账号: 人肉推土机的掘金账号 AutoGen系列一:基础介绍与入门教程 AutoGen系列二:深入自定义智能体 AutoGen系列三:内置智能体的应用与实战 AutoGen系列四&am…...

从零开始开发纯血鸿蒙应用之网页浏览
从零开始开发纯血鸿蒙应用 〇、前言一、优化菜单交互1、BuilderFunction.ets2、改造 PageTitleBar 二、网址打开1、方式选择1、使用浏览器打开2、内部打开2.1、声明权限2.2、封装 WebViewPage2.2.1、组件字段2.2.2、aboutToAppear2.2.3、onBackPress2.2.4、标题栏2.2.4、网页内…...

【大模型LLM】DeepSeek LLM Scaling Open-Source Language Models with Longtermism
深度探索LLM:以长期主义扩展开源语言模型 0.论文摘要 开源大语言模型(LLMs)的快速发展确实令人瞩目。然而,以往文献中描述的扩展规律得出了不同的结论,这为LLMs的扩展蒙上了一层阴影。我们深入研究了扩展规律&#…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...