- 博客(50)
- 收藏
- 关注
原创 实验报告:磁盘分区管理
通过本次实验,掌握了磁盘分区管理和文件系统操作的基本技能,包括使用fdisk创建分区、使用mkfs格式化分区、挂载及卸载文件系统等。这些操作为后续Linux系统管理和数据存储管理奠定了基础。
2025-03-27 14:12:22
310
原创 判断一个数是否是质数(素数)
对于小范围数(如n ≤ 10^6),使用优化到 √n或6k ± 1 规则的算法即可。对于大范围数(如n ≤ 10^12),可以使用Miller-Rabin 素性测试。如果需要批量判断,使用埃拉托斯特尼筛法。
2025-03-17 21:04:40
506
原创 记忆 `lower_bound` 和 `upper_bound`(或你实现的 `last_less_equal`)
通过理解函数的行为、记忆二分查找的条件和边界更新方式,以及通过模板和口诀进行强化,可以有效地记忆和的实现。多加练习和实际应用是巩固记忆的最佳方法!
2025-03-13 19:04:45
388
原创 二分查找易错点分析报告
二分查找的实现细节非常重要,常见的易错点包括终止条件、中间值计算、边界更新和返回值设置。通过理解这些易错点并掌握正确的实现方法,可以有效避免错误,提高代码的鲁棒性和效率。
2025-03-12 20:58:15
587
原创 `sqrt` 函数和类型转换的详细总结
在 C++ 中,类型转换用于将一种数据类型转换为另一种数据类型。函数用于计算平方根,而类型转换则是将一种数据类型转换为另一种数据类型。函数和类型转换,可以灵活地处理数值计算和类型转换的需求。:计算一个数的平方根。
2025-03-11 14:24:01
443
原创 `int get_cell_num(int i, int j) 总结
这个函数可以总结成一个普遍的规律,适用于将二维矩阵划分为多个子区域(如数独中的九宫格)的场景。在数独中,棋盘被划分为 (3 \times 3) 的九宫格,每个九宫格包含 (3 \times 3) 的格子。函数的作用是根据行号i和列号j计算当前格子所在的九宫格编号。
2025-03-09 15:25:26
405
原创 洛谷p3379 最近公共祖先
通过理解这段代码,可以掌握树结构的基本操作和倍增法的应用,并推广到其他类似问题(如 RMQ、路径查询等)。,实现了高效的 LCA 查询。
2025-03-05 20:08:31
261
原创 几种方法快速实现四舍五入
方法适用场景优点缺点std::round浮点数四舍五入简单、标准库函数需要包含<cmath>头文件手动实现浮点数四舍五入不依赖标准库需要手动实现整数四舍五入整数四舍五入到十位、百位等简单、高效仅适用于整数自定义小数位数四舍五入浮点数保留指定小数位数并四舍五入灵活需要计算幂次输出时四舍五入简单、直接输出仅适用于输出,不改变原值。
2025-03-02 20:26:12
373
原创 int new_pos = (pos + delta + 9) % 9 化曲为直算法
公式是一个通用的循环索引计算方法,适用于任何圆圈排列或循环数组的场景。它的核心思想是通过取模运算实现循环效果,并通过+ n确保索引始终为非负数。
2025-03-02 18:49:56
355
原创 编辑距离类问题
定义状态:明确 ( dp[i][j] ) 的含义。状态转移:根据字符是否相等,分情况讨论。初始化:处理边界条件(空字符串的情况)。优化空间:使用滚动数组减少空间复杂度。输出结果:返回 ( dp[m][n] )。
2025-03-02 16:16:38
473
原创 BFS 马的遍历————洛谷p1443
dijkstra算法是经典的图算法,最常见的应用就是解决最短路径问题,但具体操作上还是有一些需要注意的地方。
2024-11-29 10:31:24
249
原创 SQL 复杂查询
1、了解笛卡尔积,外连接与内连接,等值连接与自然连接的结果运算方式。2、熟悉连接运算的sql语句语法。3、学会使用子查询和连接运算查询出所需来源于多张表的数据。1、附加或还原前面实验所建立的助农水果销售系统数据库,数据库名为ZNSGXS。如自己没有备份,可以直接执行所附的实验二.sql。2、复杂查询练习:查询语句可以直接保存为扩展名为sql的文本文件,可以把本次实验所用的程序放到一个文本文件中, sql语句需写入实验报告。
2024-11-22 21:15:38
3670
1
原创 数据结构复习——绪论
无论如何,我还是比较喜欢用数学解决这个问题,靠玄学不靠谱T(n) = O( f(n) ),若T(n)和f(n)是定义在正整数集合上的两个函数,则存在正常数C,n0,使得n>=n0时,满足0
2024-11-20 20:56:46
210
原创 树状数组 Color the ball hdu 1556 线段树 洛谷p3372
树状数组和并查集一样,也是一个高级数据结构,编码简单,在算法竞赛中有着极其强大的应用。并查集主要解决的是集合的问题,而树状数组主要解决的则是有关区间的问题;并查集最本质的优化就是可以迅速找到元素所属的集合,树状数组则是可以在动态的数组中快速查询区间和。
2024-11-19 20:11:08
1225
2
原创 并查集 poj 2524,1611,1703,2236,2492,1988 练习集【蓝桥杯备赛】
如果想看基础在这里并查集基础并查集是一种极其轻巧的高级数据结构,在算法比赛中也较为常见,所以我们借几道题来加强一下。并查集主要解决的就是集合问题还有权值树问题,它可以极大提高元素查询其所在集合的效率,是一个极其轻巧好用的数据结构。
2024-11-17 15:21:01
1234
原创 并查集 How many tables(hdu 1213) How many answers are wrong(hdu 3038)
感觉并查集总共有两个应用,一是解决有关群的问题,二是利用并查集构造一个只有叶子的高效权值树。比方说a和b是朋友b和c是朋友,那么a,b,c这三个人在并查集中就属于同一个集合,如果经过路径压缩后a,b,c三个人的集合就会指向一处。
2024-11-10 21:49:48
1127
原创 IDA*算法 Power Calculus————poj 3134
如果说IDDFS算法还有可以优化的空间,我想结合A*算法一定是不二之选,所有搜索算法其实都有一个通病,就是搜索的盲目性,这也就是大部分搜索算法大家都习惯叫暴力法,如果结合A*算法使得搜索算法具有一定的目的性,那么将极大地摆脱“暴力”的标签。(由于A*算法其实是一种思想,所以没有具体的算法模板,需要大量的练习强化)。
2024-11-09 18:06:56
2302
原创 二进制中正数和负数的存储,最短路径问题 dijkstra——蓝桥p1122
今天做到这题,没注意int和long long 的取值范围,这个错找了好久。。。。。决定要发一篇博客说说这几个变量取值范围问题(@_@)。顺带讲一下二进制的有关知识。有点杂,见谅。二进制中正数和负数的存储为了区别二进制中的正数和负数,操作系统会将二进制数的第一位当作符号位,符号位为1代表负数,符号位为0代表正数,但对于unsigned修饰的变量则没有符号位,所以unsigned修饰的变量会比没修饰的大两倍。既然讲到这里了干脆就讲完来吧。
2024-10-23 14:32:37
1033
原创 BFS 与双端队列 switch the lamp on ——洛谷p4667
学习双端队列之前,我们需要队bfs有更加深入的了解,bfs又称广度优先搜索,对于每个节点,都会拓展出若干个节点,首先将该节点出队,然后将这些拓展节点依次入队,根据这个规律,我们就会发现,在一轮入队出队中,队列中最多只会存在两种元素——子节点和父节点且每层中每个节点的step都是相同的,step小的也就是父节点优先出队,step2大的也就是子节点后出队,明白了这个特性之后我们再来看看双端队列是怎么个事。
2024-10-20 19:56:04
969
4
原创 A*算法 k短路径问题——poj2449
之前我们写过的搜索算法都是一种“盲目”的搜索算法,就是说我并不知道我所走的这条路是否可以到达终点,但只要我搜索范围足够大,那么就一定可以到达终点,这样的盲目式搜索虽然思路简单但是也造成了很多不必要的搜索,所以我们之后引入了剪枝技术,但这任然改变不了盲目搜索算法的本质,于是A*算法就产生了,它相当于给搜索算法增加了一个感知模块,从而使得搜索算法变得智能。
2024-10-20 15:59:54
1226
原创 双向广搜 [NOIP2002 提高组] 字串变换————洛谷p1032
在做这题之前,我们先来回顾一下字符串的一些基本操作,这很重要,尤其是本题主要用到substr函数和replace函数。这个qb也就是终点开搜的队列,他的交换规则要反过来,变换成value变成key,因为qb队列相当于模拟起点开搜qa队列的逆过程
2024-10-13 17:07:42
1185
原创 双向广搜 Solitaire——hdu1401
其实这才是我想发这题的题解的原因,本题最重要的就是判重的操作,首先明确一点:绝对不能用int vis[][][][][][][][]判重,这个八位数组占用空间太大,算一下等于=104.8576GB,会爆掉所以次优先的方法就是改用char数组那么就可以减到=16MB,勉强可以接受。但如果把这个八位数砍成一个字符串,用map压缩无效空间,那么这个内存占用将会减少到几kb
2024-10-12 21:41:01
1193
原创 双向广搜 bfs进阶 open the lock——hdu1195
其实这题数据不算复杂,不用双向广搜也可以完成,仅仅是为了更直观展现双向广搜的编码方式。
2024-10-10 08:47:47
1138
原创 dfs与奇偶剪枝 Tempter of the bone——hdu1010
dfs与奇偶剪枝 Tempter of the bone——hdu1010
2024-10-01 16:46:31
897
1
原创 BFS 颜色填涂———洛谷p1162
由数字0组成的方阵中,有一任意形状的由数字1构成的闭合圈。现要求把闭合圈内的所有空间都填写成2。6×6的方阵(n6),涂色前和涂色后的方阵如下:如果从某个0出发,只向上下左右4个方向移动且仅经过其他0的情况下,无法到达方阵的边界,就认为这个0。闭合圈不一定是环形的,可以是任意形状,但保证的0是连通的(两两之间可以相互到达)。
2024-10-01 12:42:01
1120
原创 dfs与贪心算法——洛谷5194
要找到不大于c的最大重量,要不断逼近c,按贪心算法来讲,肯定是先拿最大的,然后在拿小的,因为小质量的砝码更可以做到逼近而不超过,但这样任然有很多组合,要找到最优的组合,可以利用dfs搜索所有组合,仔细想想这种砝码用了由于超过c而被舍弃的砝码可能会被再次利用吗,肯定可以再次利用,那么理应使用vis标记,但我试了下把vis删去居然也可以AC,我人傻了,难道所有的测试用例都可以贪心+暴力,不理解,但仔细想想好像也是,我们在循环部分,也是从大到小用砝码的没有回去用的。
2024-10-01 12:41:17
279
原创 bfs与dfs ,全球变暖——蓝桥problems178
要找到所有的岛屿,如果该岛屿存在高地则该岛屿不会被淹没,即存在一片陆地其周围都是陆地的岛屿,可以使用DFS,BFS进行搜索,由于每个像素点都需要搜索,一共有N*N个点那么时间复杂度为O(N**2),好像不可能再优了。有一张还以N*N的像素照片,“.”表示海洋,“#”表示陆地,其中上下左右能连在一起的陆地称作岛屿,例如上图有两座岛屿,由于全球气候变暖,靠经海洋的陆地会被淹没,问图中有多少座岛屿会被完全淹没。第一行输入一个整数N,之后的N*N输入该像素照片,保证第一行第一列最后一行最后一列都为海洋。
2024-10-01 12:39:45
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人