基础算法经典题目题解
文章平均质量分 57
分析一些基本的算法的经典题目的题解和代码
红糖生姜
这里是红糖,记录我的小白成长史。佛系更新题解(主要是方便自己以后复盘什么的),有想要的题的题解可以私信我,你们想要题解就是我更新的动力。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷P5318查找文献题解||有向图算法基础题
做这道题之前呢,我们需要先了解图的存储(可以用三个数组,一个变量去存储,也可以用队列,栈去存储,看个人怎么用),深度优先搜索(就是一列一列地搜索,类似于递归)和宽度优先搜索(就是一层层地遍历)。首先,这道题的大概思路就是先存储数到图中,然后深搜,再然后广搜一次。听起来思路很简单理解。原创 2024-11-18 00:52:58 · 1447 阅读 · 1 评论
-
动规——棋圣匹配
摘要:文章讨论如何计算最多可能有多少棋手同时在线寻找对手。思路是逆向思考,先求最少无法匹配的棋手数。当k≠0时,减去无法匹配的i±k的数字;当k=0时,统计不同数字种类数。最后用总数减去无法匹配数即为结果。给出了C++代码实现,使用数组统计数字频率并进行匹配计算。文章结尾作者署名红糖,并邀请读者点赞关注支持创作。原创 2025-10-12 22:08:42 · 318 阅读 · 0 评论 -
最长递增子序列--蓝桥oj3046拍照
需要注意的是这个跟合唱排队不同,这个是可以等于的,允许等于存在,所以一定要加上等于,缺少了就过不了测试点。7是最大的倒叙和正序的人数之和,那么要算出最少的需要改变出队,也就是删除的。这道题跟我上一篇的合唱队形特别相似,想了解具体思路,看我上篇文章。这里是红糖,记录我的小白成长史。所以最后答案是6-7+1=0。n-最大人数之和+1。原创 2025-03-08 21:38:24 · 385 阅读 · 0 评论 -
最长递增子序列题目--蓝桥oj742合唱队形(超详细版,思路清晰)
由于正反人数相加是有一个人的人数会重叠相加,所以,我们要在总数减去最大人数时再加一,加上这个已经被减去两次的人。双重循环,状态转移,如果一个数大于当前值,就将这个数的状态转移到当前值然后加一。b[i]=dp1[i]+dp2[i],将正反向相加得到合唱的最大人数。所以:想要知道最少的出列同学数就是等于n-最大人数+1.反向跟正向同理,循环从最后一个数开始循环即可。最后,我们根据解题思路就可以写出一整个代码了。最小值是2,最大值是5;原创 2025-03-07 22:08:18 · 695 阅读 · 0 评论 -
最长递增子序列入门题目--蓝桥oj2049蓝桥勇士
如果前面的数大于当前这个数,就转移那个数的状态到当前的数,然后加一。他的动态规划体现在想找到递增子序列,必须去更新每个数的状态,最后再遍历一遍看哪个值最大,就是最长递增子序列。最长递增子序列也是动态规划的其中一种,每个数都与前面的所有数进行比较,原创 2025-03-07 22:07:54 · 261 阅读 · 0 评论 -
动规入门题目题解-蓝桥oj389摆花(初学者必看)
有两种花,只能放4盘花,每种花必须按顺序从小到大排序,就是说第二种花是只能放在第一种花后面,第三种花前面。在限制条件内,第二种花可以摆一盘或者摆两盘,所以dp[2][4]=dp[1][3]+dp[1][2];稍微换一个思路,其实这个题也是背包问题,有n个物品,有n种价值,容量有限的情况下,放进去物品的方案数。四盘花二种花是从第一种花的三盘花的一种状态加上第一种花的两盘花的状态转移过来的。而第一种花的状态又是怎么样来的,第一种花只能有一种摆法,一般初始化为1。一开始不知道怎么做,不要紧,我们来列举一下。原创 2025-03-06 22:00:00 · 465 阅读 · 0 评论 -
动规经典题目题解—蓝桥oj3423安全序列
而1个空位到k个空位的情况,就是只能放一个油桶,而这个油桶可以放在这k个位置中的任何一个位置,也可以什么都不放,那就是k+1种方案数。i=4时,有0000,0001,0010,0100,1000,1001,六种情况,dp[4]=dp[3]+dp[1]=4+2=6。首先我们考虑0个空位的情况,0个空位就是什么都不放,什么都不放也是一种方案(这个是我们易错易漏的点,要谨记)i=3时,有000,001,010,100,四种情况,dp[3]=dp[2]+dp[0]=3+1。而大于k个空位的情况,原创 2025-03-06 19:00:00 · 330 阅读 · 0 评论 -
深搜经典问题题解-蓝桥oj3820混境之地5
我们可以先往能走的地方走,就是比当前高度低的地方先走着,走到不能走的地方再使用喷气背包,一直返回直到找到一条出迷宫的道路,如果回到入口还是找不到出口就直接返回false即可。这道题的关键难点是比别的普通的走迷宫的题目多了一个喷气背包,是否要使用喷气背包。而喷气背包只能使用一次,使用了就不能再使用,使用之后再继续走看看能不能走到迷宫出口。上一步使用喷气背包看看能不能走到终点。如果走不到迷宫出口,就返回上一步,如果不能走到终点就再返回上一步。原创 2025-03-04 12:43:31 · 192 阅读 · 0 评论 -
剪枝+深搜经典题目题解-蓝桥oj9990扫雷【算法赛】(超详细题解)
第二个剪枝是地雷肯定会使周围除了未知的* 以外的数字类型的已知的方块加一,也就是说周围八个格子,一定不为零,因为没有别的使格子减一的方式。而且每当x遍历完成一遍时,就可以判断现在的所有格子是不是都没有1-9的数字,如果全没有1-9的数字就证明有了一种新解法,ans++即可。首先就是只要判断出这个地雷这个有两种解法就可以直接判断是多种解法了,因为已经超过一种解法了,不需要再深搜出其他的解法了。这道题的核心就在于改变然后搜索,然后恢复原样,然后再搜索,就可以得出最后的答案了。有雷的时候,将附近的数全部减一,原创 2025-03-04 12:42:21 · 481 阅读 · 0 评论 -
深搜经典问题题解-蓝桥178-全球变暖(超详细超小白版)
从第一行第一列开始判断是海洋还是陆地,是否走过,如果是陆地且未走过就进入深搜,同时将此地判断已经走过,判断上下左右是否还是陆地,是陆地且为走过,是陆地就继续走,同时又标记为走过。我们可以用Int数组给每一块岛屿都编上自己的编号,比如这些是一号岛屿那就标1,二号岛屿就标2,这样子更好地去区分不同的岛屿,就像染色问题一样,将不同的岛屿染上不同的颜色。然后再用集合去存储遍历得到的剩下的陆地的编号,因为集合中是不可以存在相同的数的,集合遇到相同的会自动变为1个,最后直接算集合的大小,便是剩下的岛屿数。原创 2025-02-28 22:00:39 · 389 阅读 · 0 评论 -
深搜经典问题题解-小朋友崇拜圈蓝桥OJ182
画出图之后开始找环,找哪个环是最大的,怎么去找环,就是用深搜,每到一个数字就进去找环。并用一个数来记录环的大小,找不到环就结束,找得到环就与目前的最大的环数相比较,如果新找到的环的环数比之前找到的环数大就替换成目前的最大环数。有九个小朋友,1号小朋友崇拜3号小朋友,2号小朋友崇拜4号小朋友,3号小朋友崇拜2号,4号崇拜5号,5号崇拜3号,6号崇拜8号,7号崇拜4号,8号崇拜6号,9号崇拜9号。这道题目我们先理解一下题意,每个小朋友都有自己最崇拜的小朋友,n个小朋友,输入从1 到n号小朋友各自崇拜的小朋友。原创 2025-02-28 19:47:25 · 419 阅读 · 0 评论 -
深搜典型例题题解-N皇后问题Lanqiao1508
这道题的题目很容易理解,就是有n个皇后,n行n列的棋盘,皇后和皇后之间不能在同一行同一列和同一个45度斜线,也就是不能存在于皇后的米字型范围里面。第一个放在第一个行第一列,然后把附近米字型,上,下,左,右,左上,左下,右上,右下都设为禁区(就是不能再放皇后了),然后再从第五个皇后开始回溯,看第四个皇后还能放在哪个位置,相应的把第五个皇后的禁区给解了,这样子一步步回溯,所以第二个皇后只能放在第二行第三列,或者第二行第四列,或者第二行第五列,的典型问题,是最简单的深搜问题,是想要打天梯赛,蓝桥杯的必经之路。原创 2025-02-26 23:40:54 · 304 阅读 · 0 评论 -
洛谷题单105【入门6】函数与结构体题解|部分
题解:给三点坐标,然后求出三点连接成的三角形的周长,也就是求这三条线每两条线之间的距离的和,数学题,直接计算即可。原创 2024-11-23 16:36:49 · 434 阅读 · 0 评论 -
洛谷题单103数组题解||by红糖
人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。原创 2024-11-11 21:25:22 · 1513 阅读 · 0 评论 -
动态规划基础题:洛谷P1002过河卒(代码加注释)
题目很短,其实不怎么难,代码也只是基础演示,非常适合新手小白去理解。原创 2024-10-27 10:00:00 · 415 阅读 · 0 评论
分享