![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
Aurora_th
算法可太折磨了
展开
-
洛谷 P4913 二叉树深度(递归)
以题目的例子来讲:dfs(1)之后max(dfs(2),dfs(7))+ 1,这里dfs(7)返回1了,因为他没有节点都是0,然后2继续搜下去一直到max(dfs(4),dfs(5))+ 1,那这里就返回1了,因为他俩都没节点,一直回去就行,每次大的+1。给出每个结点的两个子结点编号(均不超过 𝑛),建立一棵二叉树(根节点的编号为 1),如果是叶子结点,则输入。之后 𝑛 行,第 𝑖 行两个整数 𝑙、𝑟,分别表示结点 𝑖 的左右子结点编号。第一行一个整数 𝑛,表示结点数。一个整数,表示最大结点深度。原创 2024-06-11 19:48:31 · 348 阅读 · 0 评论 -
Codeforces Problem 1980B Choosing cubes(基本排序)
这道题的大概意思就是:给定一个数组,输入三个数n,f,k。f是未排序前最喜欢数的下标(也就是a[f] = x),然后排序数组(大->小),删除前k的数,删除之后是否删掉了x这个数。不确定输出“MAYBE”,确定输出“YES”,没有输出“NO”原创 2024-06-11 15:57:38 · 787 阅读 · 0 评论 -
洛谷P4715 淘汰赛(树的遍历)【NBA东西部赛制】
已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军。给出各个国家的能力值,请问亚军是哪个国家?这道题是典型的NBA东西部赛制,西部冠军vs东部冠军最后总冠军,不同点是这个题是每两支球队之间打一场比赛定胜负,而NBA是谁先赢4场谁胜。第二行 2𝑛 个整数,第 𝑖 个整数表示编号为 𝑖 的国家的能力值(1≤𝑖≤2𝑛)。原创 2024-06-09 20:42:10 · 592 阅读 · 0 评论 -
LeetCode 2938.区分白球和黑球(双指针 + 贪心)
大抵意思就让i前面的全部变成黑色,j后面的全部变成白色,每次变都找相邻的最小值。返回「将所有黑色球都移到右侧,所有白色球都移到左侧所需的。最开始,1 没有都在右侧,需要至少 1 步将其移到右侧。- 交换 s[0] 和 s[1],s = "011"。- 交换 s[0] 和 s[1],s = "010"。- 交换 s[1] 和 s[2],s = "001"。在每一步中,你可以选择两个相邻的球并交换它们。个球,每个球的颜色不是黑色,就是白色。分别代表黑色和白色的球。所有黑色球都已经在右侧。原创 2024-06-06 20:59:58 · 405 阅读 · 0 评论 -
洛谷P2049 魔术棋子(bfs广搜替代动态规划)
我们以这个为例子,无非就是遍历棋盘,算出所有到达(m-1,n-1)的前缀积,那么一般情况会想到深搜dfs,有这种思路肯定是没问题,但是说明题量还是浅了,如果dfs做的很多的话,基本可以判断出这个题他不适合dfs,基本会超时。在一个 𝑀×𝑁 的魔术棋盘中,每个格子中均有一个整数,当棋子走进这个格子中,则此棋子上的数会被乘以此格子中的数。棋子初始数为 11,开始从左上角进入棋盘,走到右下角,上图中,最后棋子上的数可能为 288,432 或 540。以下 𝑀 行,每行 𝑁 个数,分别为此方阵中的数。原创 2024-06-05 23:47:40 · 622 阅读 · 0 评论 -
Acwing 101.最高的牛 《算法进阶指南》
有 𝑁 头牛站成一行,被编队为 1、2、3…𝑁,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 𝑃 头,它的身高是 𝐻 ,剩余牛的身高未知。但是,我们还知道这群牛之中存在着 M𝑀 对关系,每对关系都指明了某两头牛 𝐴 和 𝐵 可以相互看见。求每头牛的身高的最大可能值是多少。原创 2024-06-05 14:27:43 · 413 阅读 · 0 评论 -
洛谷P8647 [蓝桥杯 2017 省 AB] 分巧克力(真题)
这道题很快会想到一种解法就是算出1-N大小巧克力的块数,然后找出那个超过k并且离k最近的大小的值就是答案。例如一块 6×56×5 的巧克力可以切出 66 块 2×22×2 的巧克力或者 22 块 3×33×3 的巧克力。就是你会发现1-N大小的巧克力块数他是递减的,那么既然他单调,二分是最合适不过的了。小明一共有 𝑁N 块巧克力,其中第 𝑖i 块是 𝐻𝑖×𝑊𝑖Hi×Wi 的方格组成的长方形。原创 2024-05-31 19:44:45 · 511 阅读 · 0 评论 -
洛谷P1036 选数(dfs的应用)
是不是发现问题了,很明显的多了两个,所以他跟传统的暴力深搜不一样,这道题是一直向起点前面搜的,不会搜到起点后面的元素,那么就需要加一个变量了:起点:index。这里就保证了每次都向前搜,那么就保证了一定不会重复,最后写一个判断素数函数(相信大家已经砍瓜切菜了吧),然后就是套用dfs的模板即可。这道题很明显是一道dfs,但是有一个非常坑的地方就是重复,怎么讲呢?那么如果是全排列,会怎么样呢?原创 2024-06-01 21:42:55 · 412 阅读 · 0 评论 -
洛谷P1783 数独(c++lambda函数广搜详解)
不过这位数学家说,他所设计的数独游戏难度等级是十一,可以说是所以数独游戏中,难度最高的等级。他还表示,他目前还没遇到解不出来的数独游戏,因此他认为“最具挑战性”的数独游戏并没有出现。数独是根据 9×99×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含 1−91−9 ,不重复。首先这道题目如果是人来做,那么会有许多技巧,那么如果把这些技巧转换成编程那会是一个艰难的过程,那么我们不如用dfs广度搜索来解决这个问题。我们需要定义行、列、宫三个bool数组来占位。原创 2024-05-30 15:22:55 · 862 阅读 · 0 评论 -
LeetCode 18.四数之和(暴力dfs)
这道题有一种暴力解法,虽然效率不高,但是能通过我们可以看看这道题的通过率如果这是算法比赛,那么其实能通过就已经超过一多半的人了,当然如果你是追求更高水平,可以去想想更好的策略来解决这个问题,这里我们讲讲dfs来暴力解决他首先的话,我们发现他要求不重复,并且四数之和==target,那么这里不重复我就不做详细解释了,大家可以看看前两天我发布的洛谷P1036 选数(dfs的应用)-CSDN博客里面是这道题的母题。那么一旦解决了不重复问题以后,剩下就是暴力dfs搜一遍,然后如果==原创 2024-06-02 10:07:44 · 330 阅读 · 0 评论 -
LeetCode 2951.找出缺少的观测数据
如果存在多组符合要求的答案,只需要返回其中任意一组即可。如果不存在答案,返回一个空数组。幸好你有之前计算过的这。的数组,包含所有缺失的观测数据,且满足这。骰子的观测数据,骰子的每个面从。为这些数字求和后再除以。份,你手上只拿到剩余。原创 2024-05-29 18:06:40 · 526 阅读 · 0 评论 -
Acwing《算法进阶指南》激光炸弹
地图上有 N 个目标点,用整数 𝑋𝑖,𝑌𝑖 表示目标在地图上的位置,每个目标都有一个价值 𝑊𝑖。:不同目标可能在同一位置。现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 𝑥,𝑦 轴平行。求一颗炸弹最多能炸掉地图上总价值为多少的目标。原创 2024-06-04 22:43:14 · 298 阅读 · 0 评论 -
洛谷P1443 马的遍历(bfs广搜的基本应用)
这个问题呢是bfs的入门题,向较于dfs深搜,广搜的时间复杂度会降低一些,因为dfs是找不到一个解不回头,而bfs是找最优解,所以这就是两者的区别。当队列为空时,说明所有格子都走过了,那么循环结束,起始点和边界一定要处理好,代码一定要自己去多敲几遍,上述只是模板,真正掌握还是要去多刷题。如果想掌握bfs,前提是有dfs的基础和会用队列。加油,每天坚持做几题,沉淀下来。原创 2024-06-03 10:31:40 · 322 阅读 · 0 评论 -
LeetCode 2981.找出出现至少三次的最长特殊子字符串
的长度,如果不存在出现至少三次的特殊子字符串,则返回。如果一个字符串仅由单一字符组成,那么它被称为。给你一个仅由小写英文字母组成的字符串。不是特殊字符串,而字符串。是字符串中的一个连续。原创 2024-05-29 18:42:13 · 250 阅读 · 0 评论