自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【调整堆】(C++ 代码实现 & 注释详解)

调整堆的函数:HeapAdjust函数思路说明://目标:将以s为根的子树调整为大根堆//具体操作:将路径上比s大的都往上移动,s往下移动,直到遇到比s还小的,就“放下”s

2024-06-09 11:49:46 304

原创 【PTA】7-3 拯救007(C++)代码实现 & 易错点反思

检查了半天仍然查不出的问题:1. 当考虑特殊情况要提前结束程序时,别忘了return

2024-06-03 21:38:43 293

原创 【PTA】7-4 朋友圈(C++ * 并查集思想)代码实现 & 一点反思

不寻求在每一次更新节点的时候就能将所有相关节点的父亲结点都给统一更新好,而是两个两个建立父子关系,最后统一用FInd_fa函数来查找父节点。:先找父节点,最后再总体遍历一次计算最大值。

2024-05-31 21:15:25 345

原创 【PTA 6-1】邻接矩阵存储图的深度优先遍历(易错点提醒 & 代码实现)

关于参数中‘void (*Visit)(Vertex)’的粗略说明:

2024-05-24 22:01:19 462

原创 【最小生成树】—— Kruskal算法(C++详解版) 思路分析 & 代码实现

关于”判断是否形成环路“的阐释在实现过程中,通常会使用并查集来判断是否形成环路。如果选中的边的两个顶点属于同一个集合,则说明会形成环路,此时应该舍弃该边。否则,将两个顶点合并到同一个集合中,并将该边加入最小生成树中。

2024-05-19 20:07:04 874

原创 大学生计算机应用能力达标测试(C1-1)(西电) C语言题目 & 备考建议 & 应试建议

接受一个整数n, 0

2024-05-18 17:01:26 474

原创 链接表存储图(C++注释详解): 构建表 & 广度优先遍历 (BFS)

图的链接表的构建 & 利用队列实现广度优先遍历 (BFS)

2024-05-16 15:27:36 213

原创 链接表存储图(C++注释详解): 构建表 & 深度优先遍历 (DFS)

代码实现: 构建表 & 深度优先遍历 (DFS)

2024-05-15 21:40:50 469

原创 Dijkstra算法(C/C++简明注释详解版: 代码实现 & 测试数据)

Dijkstra算法是一种求解最短路径的贪心算法,它能够找到两点之间的最短路径。1) 找到起始点到该节点距离最短的节点(即未被访问过且距离最小的节点)。2. 创建一个数组用于记录节点是否已经被访问过,初始化为false。1. 创建一个数组用于记录起始点到其他节点的距离,初始化为无穷大。3) 遍历该节点的所有邻居节点,更新起始点到邻居节点的距离。5. 最终得到起始点到其他所有节点的最短距离。2) 标记该节点已经被访问过。3. 将起始点到自身的距离设为0。~~ 希望对你有帮助 ~~

2024-05-09 20:53:09 671

原创 哈夫曼编/译码器(C++)

A. 利用优先队列构造哈夫曼树。B. 完整代码可实现题目要求的功能:1. 编码 2. 读入文本并转化为编码形式存储与“ code ”中 3. 将code中编码转译为文本,并与原文本比较

2024-04-30 21:48:39 377 2

原创 priority_queue 的 自定义排序(C++ 简明版)

笔者初学的时候,看网上资料很多且详尽,但是作为初学者,看了一堆没学过的代码后,也不知道自己到底怎么用,且就实际使用而言,只需熟练掌握一种即可了。故学会使用后作此入门式讲解,希望给你带来帮助~程序中使用了一个处理不知输入值的个数的技巧(“while(cin>>cur.name>>cur.value)”),

2024-04-24 22:52:50 540 1

原创 priority_queue 的 自定义排序(C++ 简明版)

笔者初学的时候,看网上资料很多且详尽,但是作为初学者,看了一堆没学过的代码后,也不知道自己到底怎么用,且就实际使用而言,只需熟练掌握一种即可了。故学会使用后作此入门式讲解,希望给你带来帮助~程序中使用了一个处理不知输入值的个数的技巧(“while(cin>>cur.name>>cur.value)”),

2024-04-19 22:00:10 136

原创 天梯赛2023 L2-2 天梯赛的赛场安排(C++)代码实现 & 易错点 & 反思

AC代码如下:使用了优先队列,栈。

2024-04-18 22:56:35 424

原创 天梯赛 L1-7 分寝室 代码实现 & 反思

但后来仔细想一下,min记录的男女每个宿舍人数的差值最小值啊,跟n的大小并没有直接关系啊, 这样看, min的初始值大概并不能根据题目输入值简单界定,那就定的大些吧。一开始测试点4怎么都不能AC,百思不得其解,上网看了别人的代码后,发现问题出在记录最小差值的变量 min 的初始定义上,你能看出问题吗?我一开始将min初始化为n+1,是想当然地以为最大差值不会超过n,毕竟宿舍一共就n个,怎么会差值怎么会超过n呢?总的来说,慎终如始,则无坏事~

2024-04-17 22:55:20 407 3

原创 二叉树: 构造 & 三种遍历(C++)

通过使用引用,我们可以直接修改传递的指针的值,而不是传递指针的副本。在这个函数参数中,&符号表示传递的是指向指针的引用。这样可以确保在函数内部对指针的修改对调用者也是可见的,而不需要返回修改后的指针。

2024-04-16 22:34:12 1132 1

原创 PTA 病毒感染检测(C/ C++) 一行代码的优化,整个程序的成功!

就是:当病毒的DNA开始与人的DNA重合时,如果人的DNA的剩余长度都比病毒的长度要小,那么匹配失败的结局是必然的,就不需要进行后面的操作了,于是可以提前结束程序。后面就想怎么降低不必要的过程,实际上就是跳出程序本身去思考题目蕴含了哪些关系,可以利用以优化代码,如提前结束循环过程。一开始有两个测试点出现“段错误”, 修改数组大小无果后,感觉应该是程序暴力for循环求解导致时间复杂度太大。结果让人惊喜,直接就AC啦~。希望能给你带来启发~

2024-04-14 22:45:29 597

原创 天梯赛L2-2 老板的作息表(C/ C++) 思路 & 代码实现 &反思

代码写到后面,发现由于小时/分钟/秒的交换,代码显得特别冗余。若题给最晚时间不是23:59:59, 则将T[ final ] - 23:59:59 作为 re[ fianl ].若题给最早时间不是00:00:00, 则将00:00:00 - (T[ 0 ])作为 re[ 0 ];将(T)的下一段时间的开头作为(re_T)的结尾。一般情形:将题目给出的某段时间(T)的末尾作为re的一段时间(re_T)的开头;0.读入时间后,用排序神奇qsort从小到大进行排序。1.re数组负责接收待输出的结果。

2024-04-10 22:11:02 557 1

原创 不知道输入数据有多少,到底怎么接收呢?(C/C++)

在自己调试的过程中,可以在输入结束时按“Ctrl + Z”到命令行中实现终止程序。在递交给评测系统时,题目的数据末尾会有终止符。//用cin.getline接收。//scanf接收字符串。

2024-04-08 22:19:58 235

原创 天梯赛2022 L2-3 龙龙送外卖(C++)注释详解版

笔者也是初学者,本文是在参考文章的基础上根据自己理解写得注释版,希望能给有需要的童鞋一些帮助,少走我的弯路~

2024-04-07 22:18:14 289

原创 迷宫问题(C++): 最短路径计算(队列)&& 路径输出(栈)(附一个易错点~)

回溯路径的原理:从出口开始,在re_bd(PS: re_bd[ i ][ j ]用来记忆从起点到第 i 行第 j 列的最短路径长度)里找周围八个方向中路径长度少1的点, 故一般情况可用以下代码非注释部分来判断。~都看到这啦, 你一定是个超级认真的友友,关注一下吧~ 😋ღ ʕ̡̢̡•̫͡•ʔ̢̡̢ ღ😋。”, 在re_bd == 1 时就结束寻找,在printf栈元素之前先print一下起点坐标。1.补充上面被注释掉的“if(org == 0) // 如果是起点”部分, 将起点。在于最短路径的回溯过程。

2024-04-07 16:28:15 481

原创 天梯赛2022 L2-1 插松枝(C/ C++)(思路心得 + 代码实现)

3. 需要的变量有哪些, 除了题目条件直接点出的(如推送器)之外,大体上还需要设哪些辅助变量(如本题中设 i_tui 指示推进器当前推送的松针序号, 最终用 i_tui==size(推进器)判断推送完全 )1. 如果要循环操作,那么循环的依据是什么 (本题中,我选择“成功插上一根松针”为主while循环的依据)//注意, 这点感觉是蛮重要的,在整个循环中都要保证是同一个阶段,这样不容易错。今天“痛改前非”, 开始敲代码前先按照理解将工作流程图给画了一遍(如下图), 诶, 立刻清楚了不少!

2024-04-06 22:33:06 659 2

原创 如果你用c++的栈或队列发生了报错~

0. s.top()或q.front()前先排除s,empty()或q.empty()的情况,不然就会导致“栈溢出”特别气人的是:报错信息根本不清楚,devcpp中甚至报错位置都不对,在一开头创建栈的时候就崩溃了,我还以为语法有问题呢。实际上:真正的错误在后头的栈的操作中,我一开始在s.top(即访问栈顶)前没有排除栈为空的情况(s.empty())。类似的,对于链表,访问链表的值之前,先要排除其为空的情况(node == NULL)1. s.pop()前也是如此。

2024-03-30 22:10:43 197 1

原创 PTA 7-4 列车调度(C/ C++)

一个数组就好啦,还搞什么队列嘞~

2024-03-23 21:41:09 912

原创 PTA 7-6 迷宫-深度策略(g++)

代码亮点: 借鉴别人的一个特别优雅的解法, 即本代码中为了实现八个方向的探索,建立了一个help数组,这样在find_way中用一个for循环就可以实现探索~,避免了八“坨”if 语句(doge)PS:看到网上有人说这题的测试数据是逆时针探寻, 本代码按顺时针做没什么有问题哦~

2024-03-21 21:23:39 434 1

原创 PTA 7-2 重排链表(gcc)

PS:由于作者水平有限,本题的解题思路参考了csdn上其他高手的作品,深感自愧不如。但既然自己写完了,还是很想发上来,就当是一种记录吧~~~HAVE A NICE DAY!不得不承认的是,本代码虽然通过了PTA的全部测试数据,但并不是一个“一气呵成”的作品,而只是在不断适应各种特殊情况(如结点个数为奇数/ 有多余结点)的过程中修修补补而成。

2024-03-17 19:15:02 395 1

原创 PTA 7-1(C/ C++)

【代码】PTA 7-1(C/ C++)

2024-03-16 15:37:44 195 1

空空如也

空空如也

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

TA关注的人

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