![](https://img-blog.csdnimg.cn/direct/4640df1a77984fa49856ebe205647326.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
蓝桥杯抱佛脚系列
文章平均质量分 97
两个礼拜的时间,从零开始突击竞赛算法,主打一个随缘,目的在于混个省奖
全栈ing小甘
成为一个全干工程师
展开
-
蓝桥杯第十五届抱佛脚(十)贪心算法
贪心算法是一种在算法设计中常用的方法,它在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。贪心算法与枚举法的不同之处在于每个子问题都选择最优的情况,然后向下继续进行,且不能回溯。枚举法是将所有情况都考虑然后选出最优的情况。贪心算法在解决问题时,不从整体考虑,而是采用一种一眼看到局部最优解的选择方式。并且,贪心算法没有固定的模板可以遵循,每个题目都有不同的贪心策略,所以算法设计的关键在于贪心策略的选择。原创 2024-04-07 15:37:56 · 5643 阅读 · 3 评论 -
蓝桥杯第十五届抱佛脚(一)手算和思维题
知识点梳理思维题(杂题):不需要算法和数据结构,只需要逻辑、推理的题目,难度可难可易。考察思维能力和编码能力,只能通过大量做题来提高。BFS 搜索和 DFS 搜索:也就是暴力搜索。这是非常基本的算法,是基础中的基础。动态规划:线性 DP,以及一些 DP 应用,例如状态压缩 DP、树形 DP 等。简单数学和简单数论。简单的字符串处理、输入输出,简单图论。基本算法:例如排序、排列、二分、倍增、差分、贪心。基本数据结构:队列、栈、链表、二叉树等。原创 2024-03-22 15:09:24 · 1514 阅读 · 3 评论 -
蓝桥杯第十五届抱佛脚(二)竞赛中的数据结构
在算法竞赛中,有一些常用的数据结构非常重要,熟练掌握它们有助于解决很多算法问题。以下是一些常见的数据结构:数组(Array)和链表(Linked List)基本的线性数据结构,支持随机访问(数组)和动态内存分配(链表)栈(Stack)和队列(Queue)基于先进后出(LIFO)和先进先出(FIFO)原理的线性数据结构集合(Set)无重复元素的集合,HashSet和TreeSet是常用实现掌握这些数据结构的实现原理、时间/空间复杂度、使用场景对于算法竞赛至关重要。原创 2024-03-24 13:47:47 · 1889 阅读 · 1 评论 -
蓝桥杯第十五届抱佛脚(三)枚举法与尺取法
很多人将蓝桥杯戏称为“暴力杯”,因为蓝桥杯采用了OI的赛制。在这种赛制下,即使对于某些大题答案不清楚的情况下,也可以通过暴力方法获得部分分数。一提到暴力,人们往往首先想到的是枚举。然而,实际上,枚举是一门需要技巧的技术,确保能够穷尽所有可能情况并不容易。因此,在本文中,我将详细介绍,以确保能够完整地列举出所有情况,不漏掉任何一种可能性。原创 2024-03-25 15:58:11 · 1006 阅读 · 0 评论 -
蓝桥杯第十五届抱佛脚(四)递归与分治
递归和分治是两种常见的问题解决方法,它们是不同的概念,但它们经常在一起使用,有时甚至是互相支持的。递归是一种解决问题的方法,其中一个函数通过不断调用自身来解决更小规模的子问题,直到达到基本情况为止。递归通常用于解决具有自相似性质的问题,例如树结构、图结构等。经典的递归算法包括斐波那契数列的计算、二叉树的遍历等。分治是一种算法设计策略,它将问题分解成若干个规模较小且相互独立的子问题,然后解决这些子问题,最后将子问题的解合并起来得到原问题的解。分治算法通常用于解决可以被分割成互相独立的子问题的问题。原创 2024-03-27 17:26:16 · 818 阅读 · 0 评论 -
蓝桥杯第十五届抱佛脚(五)DFS、BFS及IDS
DFS(Depth-First Search)即深度优先搜索,是一种用于遍历或搜索树或图的算法。它从根节点开始,尽可能沿着每一条路径直到这条路径最后一个节点被访问了,然后回退,继续访问下一条路径。它的基本思想是尽可能深地搜索树的分支,直到达到叶子节点,然后回溯到上一个分支节点继续搜索。DFS通常使用递归或栈来实现。原创 2024-03-29 23:32:56 · 1254 阅读 · 0 评论 -
蓝桥杯第十五届抱佛脚(六)回溯与剪枝
回溯算法是一种解决问题的算法,它尝试解决问题的一个分支,如果发现当前分支不能得到有效的完整解决方案,就会消除(回溯)所做的一系列选择,并尝试另一个可能的分支。回溯算法通常用于解决组合问题,如排列、组合、选择和分割问题,它通过逐步构建解的候选项并在每个步骤中继续或放弃继续探索的决策,实现问题的穷举搜索。原创 2024-03-30 13:33:17 · 1153 阅读 · 0 评论 -
蓝桥杯第十五届抱佛脚(七)前缀和与差分
前缀和算法主要用于处理区间和的查询问题。构建前缀和数组:对于给定的数组arr,构建一个新的数组prefixSum,其中存储了从arr[0]到arr[i]的元素之和。区间和查询:如果需要频繁查询数组的任意子数组(区间)的和,前缀和算法是一个非常有效的方法。适用于静态数据:当原数组在多次查询之间不改变时尤其有效。快速查询:查询任意区间和的时间复杂度降低到 O(1)。更新困难:如果原数组频繁变化,需要重新计算前缀和,这可能很耗时。原创 2024-03-31 10:30:17 · 1280 阅读 · 0 评论 -
蓝桥杯第十五届抱佛脚(八)并查集
并查集是一种数据结构,用于管理一系列不交集的元素集合,并支持两种操作:查找(Find):查找操作用于确定某个元素属于哪个集合,这通常通过追溯元素的父节点直到找到代表元素来完成。合并(Union):合并操作用于将两个不相交的集合合并为一个。合并可以通过将一个集合的代表元素的父节点指针指向另一个集合的代表元素来完成。具体实现时,并查集通过一个数组来维护每个元素的父指针,每个集合由一个根元素代表,该根元素的父指针指向自己,表明它是集合的代表。原创 2024-03-31 15:03:41 · 1108 阅读 · 0 评论 -
蓝桥杯第十五届抱佛脚(九)动态规划
动态规划(Dynamic Programming, DP)是一种用于解决复杂问题的优化算法设计技术。它将原问题分解为若干相互重叠的子问题,通过记录子问题的解,避免重复计算,从而大大减少了计算量。动态规划典型的应用场景包括:最优化问题:如求最短路径、最小编辑距离等。计数问题:如有多少种方式走到终点、排列组合数量等。取值问题:如背包问题、切钢条问题等。原创 2024-04-01 11:44:47 · 1431 阅读 · 2 评论