自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 C++语法基础L1-第十七讲:字符串和字符数组的操作

【代码】C++语法基础L1-第十七讲:字符串和字符数组的操作。

2024-06-08 21:13:00 299

原创 2024年寒假算法班集训day10-知识总结及题解(广度优先搜索)

同理,BFS从一个起点开始,先访问所有的近邻节点,然后再逐步移动到更远的节点。这个问题是一个典型的广度优先搜索(BFS)问题,在一个给定的 ( n \times n ) 矩阵上,需要找到从起点 (1,1) 到达终点(师傅的位置,标记为2)的最短路径。函数从起始楼层开始搜索,通过循环检查每个楼层可以到达的楼层,如果到达的楼层为目标楼层,则输出步数并返回。使用一个循环来不断从队列中取出元素,对每个元素尝试三种不同的移动方式,并更新新的位置和步数,如果新的位置有效且未被访问过,则将其加入队列。

2024-01-26 22:56:19 2014 1

原创 2024年寒假算法班集训day09-知识总结及题解(深搜下)

概念DFS的高级应用包括解决复杂的搜索问题,如迷宫探索、图的所有路径搜索等。它与回溯法紧密相关,回溯法常用于需要试探和回退的搜索问题中,例如解决排列组合问题。DFS的另一个高级应用是在有向图中进行拓扑排序,这在解决依赖问题中特别有用,如任务调度。它也可以用来检测图中的环,这在确定图是否为有向无环图(DAG)时非常重要。在实现DFS时,特别注意避免重复访问已访问的节点,这通常需要额外的数据结构来跟踪每个节点的访问状态。1、八皇后问题-2971题目描述了经典的八皇后问题。在一个 (8 \times 8)

2024-01-26 20:14:19 556 1

原创 2024年寒假算法班集训day08-知识总结及题解(深搜上)

迷宫是一个 (N \times N) 的方格,其中“0”表示可以通行的格子,“1”表示不可通行的障碍,“2”表示宝藏的位置。程序会遍历每一个格子,如果是感染区域(即非 (0) 的格子),就进行深度优先搜索,将整个感染区域标记为已访问(即将所有连通的非 (0) 数字改为 (0)),然后感染区域的计数增加 (1)。题目描述了一个迷宫探险问题,迷宫由 ( n \times n ) 的格点组成,每个格点要么是可通行的(表示为“.”),要么是不可通行的(表示为“#”)。最后,输出这些字符串中最长的一个的长度。

2024-01-26 19:50:50 1621 1

原创 2024年寒假算法班集训day07-知识总结及题解(快排与归并)

概念快速排序和归并排序是两种常用的高效排序算法,它们都采用分治策略,但在细节上有所不同:快速排序:原理:通过一个称为“基准”的元素将数组分为两个子数组,使得左边的元素都不大于基准,右边的元素都不小于基准,然后递归地在两个子数组上应用相同的过程。优点:平均情况下非常快,时间复杂度为O(n log n)。注意:最坏情况下(已排序或反向排序的数据)时间复杂度退化为O(n^2)。归并排序:原理:将数组分为两半,对每一半递归地应用归并排序,然后将排序好的两半合并成一个有序数组。优点:性能稳定,时间复杂

2024-01-26 18:20:48 752 1

原创 C++语法基础L1-第十六讲:C++浮点数和数据类型转换

在代码中,定义了一个名为"fun"的递归函数,它接受一个参数"x",如果x等于1,就返回1,否则继续递归调用"fun(x-1)",将结果与x相乘,最终计算出n的阶乘。回溯算法是一种通过探索所有可能的候选解来找出所有解的算法,如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会丢弃该解,回退到上一步,然后会根据算法的过程,尝试另外的解。对于分数的加法,我们需要先找到一个共同的分母(即分母的最小公倍数),然后将所有分数转换为具有相同分母的等价分数,将它们的分子相加,最后将得到的分数化简。

2024-01-26 14:17:53 612 1

原创 2024年寒假算法班集训day05-知识总结及题解(前缀和与差分)

具体方法是先计算出数组的前缀和数组,其中第i个元素是原数组前i个元素的和。例如,想要求原数组中从第l个到第r个元素的区间和,只需要用前缀和数组的第r个元素减去第l-1个元素的前缀和即可。这里s[L-1]代表的是数组a的第1个元素到第L-1个元素的和,而s[R]代表的是数组a的第1个元素到第R个元素的和。接下来,对于每次操作,更新差分数组,并在所有操作结束后,通过差分数组还原最终的杯子水量数组,最后输出每个杯子中的水量。这里的区间和指的是在一个数组中,从第 x 个元素到第 y 个元素的所有数的和。

2024-01-26 11:53:15 747 1

原创 2024年寒假算法班集训day04-知识总结及题解(贪心)

贪心算法是一种在每一步选择中都采取当前状态下最优的选择,希望通过一系列局部最优的选择,达到全局最优解的算法思想。对于每一堆胡萝卜,首先记录下所有胡萝卜的重量,然后在该堆中找出最重的胡萝卜,最后将四堆中最重的胡萝卜重量求和。贪心算法是解决这类问题的有效方法,即优先安排时间最短的会议,从而最大化会议的数量。这个问题可以通过贪心算法来解决,即每次选择体重最轻的士兵上船,直到船的载重量无法再装载更多的士兵为止。这个题目是一个典型的贪心算法问题,主要目的是在给定的游戏规则下,尽量减少扣款,以保证童童能赢取最多的钱。

2024-01-26 10:49:55 636 1

原创 2024年寒假算法班集训day03-知识总结及题解(递推)

这个问题可以通过递推的方式解决,因为对于一个2xN的墙面,我们可以选择放置一个2x1的瓷砖在最左边,剩下的部分就变成了一个2x(N-1)的问题;其中,a[i]表示铺满2xN墙面的方法数,a[i-1]和a[i-2]分别表示铺满2x(N-1)和2x(N-2)墙面的方法数。初始化条件是a[1] = 1和a[2] = 2,即一个2x1的墙面有1种铺法,2x2的墙面有2种铺法。递推算法,又称为迭代算法,它的基本思想是将问题分解成一系列相似的子问题,通过解决较简单的子问题,逐步求解原问题。具体来说,我们使用一个数组。

2024-01-26 10:09:11 977 1

原创 2024年寒假算法班集训day02-知识总结及题解(枚举)

因此,如果地雷位置上是敌人,实际的敌人数应该是。题目描述了一个数学解密游戏,Elsie 有三个正整数 A、B、C,并告诉 Bessie 七个数字,宣称这些数字是 A、B、C 及它们各自的和(A+B,B+C,C+A 以及 A+B+C)的某种排列。解题思路是穷举所有的三位数(100-999),对每一个数,分别计算其个位、十位和百位的数字,然后将这三个数字的立方和相加,检查它们的和是否等于原数。在给定的输入样例中,N=2,M=3,通过枚举所有可能的点对,我们可以得到8个正方形和10个长方形,这与样例输出一致。

2024-01-25 23:49:54 2047

原创 2024年寒假算法班集训day01-知识总结及题解(二分)

如果他把前两块糖果作为一个口袋,第三、四块糖果作为第二个口袋,最后三天每块糖果各占一个口袋,那最满的口袋里就是500元的那块糖果。函数f的工作原理是,从起点开始,对于每块岩石,如果当前岩石与上一次跳跃点的距离小于mid,则需要移除这块岩石(计数器cnt加1),否则将这块岩石作为新的跳跃点。通过不断调整l的值,寻找一个最大的l,使得所有原木切割后至少能得到k段木材。代表5,r 代表6,当它们只相差1时,你已经不能再分割区间了,这时l就是你最后能猜到的最大数,也就是这个问题中你能切出来的最长木材的长度。

2024-01-25 19:34:41 575

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除