自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 L2-046 天梯赛的赛场安排

模拟题,使用到了优先队列 map ,头一次能一把过这种较为复杂的模拟题。

2025-04-17 11:29:33 343

原创 L2-041 插松枝

2 很难像其它算法题那样学到思路,出现错误,往往是一些细节问题导致的,并非思维和知识点上的错误,修正这些细节错误感觉很难学到东西。模拟题一直是自己的噩梦,调了一上午才调出来这道题。1 题目需求布豪实现,题意晦涩。

2025-04-16 12:10:54 142

原创 L2-038 病毒溯源

这道题一开始没有仔细分析,是直接用bfs做的。但是bfs会出现的问题是,可以求出最长路,但是无法正确记录最长路径(至少我采用的方法是错的)。如果最长路径的路径上有一个节点,从开始节点到这个节点有多条路径,且较长的路径的节点序列更长,那么这样的情况会导致错误。感觉自己对于常见的算法如bfs dfs等都比较熟悉了,但是做题时还是会先不清楚,感觉自己想题时总是太急,只想一个大概思路就开始写。相反使用dfs,在保证每次访问子节点时总是优先访问序号较小子节点时,由于搜索是一条路走到头的,那么可以记录下正确路径。

2025-04-15 21:19:25 225

原创 L2-023 图着色问题

除此之外还有一个题意不明的点,“顶点和颜色都从1到V编号”,让人理解为:颜色的类型必须从1开始标号,但是这又和样例数据矛盾,根据样例,这句话的仅仅只是限定了颜色类型数值的范围不会很大。本关的一个最大的坑点在于:图中出现的颜色个数要完全等于k,但是根据题目中的表述“问可否用K种颜色为V中的每一个顶点分配一种颜色”,让人理解的意思是用的颜色种数不超过k就可以。算法思路:不必使用搜索算法,直接遍历所有的边然后判断两个顶点是否是相同颜色即可。nt pta 这题题意并不明晰。

2025-03-27 14:31:08 229

原创 L2-020 功夫传人

自己逻辑上想到了完整的解法,但是在写qkmi函数的时候,传入的a一开始写成了int类型,将 100-r 转成了int导致精度丢失调了好长时间的bug。衰减比例 r 可能是浮点数,所以输入的时候和写函数的时候要特别注意这一点。

2025-03-26 17:28:44 200

原创 L2-011 玩转二叉树

具体的错误做法是,先把当前树的根存到数组中,递归遍历右子树和左子树,将得到的数组当作层序遍历的结果输出。犯的错误是,没有想清楚函数递归调用的过程,遍历左右树的函数不会同时执行。上面这种做法按照 根 -- 右 -- 左 的方式依次遍历整个树,而非期待的层序遍历方式。正确的方式是再递归函数参数中 增加层数变量,将树递归遍历过程中的根存储在不同层的数组中,最终得到正确的层序遍历结果进行输出。采用的方式和L2-006树的遍历的方式类似,都是使用不建树,只是用递归的方式来得到要输出的数据。

2025-03-09 17:44:53 178

原创 L2 -010 排座位

注意到题目中提到了 “朋友的朋友还是朋友”,这和并查集的数据结构很像,想到使用并查集来维护朋友之间的关系。考虑到最终答案输出时要考虑的条件,我们只用二维数组来维护敌人的关系。

2025-03-09 17:33:10 216

原创 L2-009 抢红包

考点是 结构体 以及结构体排序函数。

2025-03-09 17:27:15 88

原创 L2 006树的遍历

一开始犯了一个错误,记错了二叉树的性质 将搜索二叉树的性质误记为二叉树的性质,所以一开始是利用后续遍历的序列,按照左边节点key值小于根节点,右边节点key值大于等于根节点的性质来判断左右子树范围然后进行递归求解的。正解应该是根据后序遍历找出根,然后在中序遍历中利用根找到左边的树的范围和右边的树的范围,然后递归遍历对对应的序列。同时递归调用过程中维护了一个深度值,每次到一个深度,将该深度下的树根存储到对应的数组中。但是要特别注意如何根据一个子树的长度序列求其左右节点。

2025-03-07 17:31:58 274

原创 L2 008最长对称子串

mancher算法 算是对这个算法的复习。这个算法核心就是回文串左右对称,所以左右半径也相等,但是要注意的细节是,这里存的半径是包含中心点的。比如说 1 2 3 2 1 那么半径是3而不是2.

2025-03-07 16:50:38 132

原创 l2 007 家庭房产

然后遍历每一个人对其使用bfs算法,统计这个人家庭的相关统计信息。这道题一开始是想使用并查集去做,但是虽然并查集可以将属于同一家庭的人合并到一块,但是这道题目要考虑维护其它信息,在并查集进行合并的时候,可能被合并的成员的信息还没有输入(其实理论上应该也能做),所以我换了一种更加好想的方法。还要注意两个点:其一,由于我们是通过枚举整个编号空间来处理的,那么只考虑输入中提到的编号,所以将编号空间的st数组先初始化为0x3f3f3f3f,然后将输入编号对应st中元素初始化为0。其二,关于测试点5。

2025-03-07 15:51:07 224

原创 L2-005 集合相似度

使用stl库中的set来解决这个问题,求交并比即可。一开始使用cin cout 输入输出,反复检查时间复杂度上没有问题,但是最后一个点就是过不了,改成scanf和printf后通过。

2025-03-06 20:51:41 399

原创 L2 004 这是搜索二叉树吗 测试点6

测试点6 的数据是只有一个数,由于pta官方的测评方式会考虑空格,所以我们在输出时要考虑特判,最后一个数(包括只有一个数的情况)要不输出空格。

2025-03-04 21:36:47 303

原创 pta L2002 链表去重

先给要去除的节点打上标记,并将其的地址保存到数组中。然后再遍历原链表去除打上标记的节点,得到去重后的链表。遍历数组得到重新建立被去除节点组成的链表。关键在于将判断重复节点和修改链表的操作分离,更好想。还有输出格式上要注意:输出地址除了-1都要是五位。

2025-03-04 08:54:24 266

原创 dijkstra 和 bfs 在最短路中区别

这种情况下,先更新1,在更新2 ,并且用第一次更新后的1的dis去更新3 ,但是第一次更新后的1的dis并不是1的最小dis,1的最小dis由2更新得到。所以其更新得到的并非最短路。自己一开始用的bfs,也就是说没有想清楚在边权重不为1的图中,为什么使用bfs是不行的,想了一下反例,在此记录一下。根据代码实现这两个算法的关键在于 更新时如何选择下一个点。bfs是选择最先更新的点,dijkstra总是选择更新距离最小的点。

2025-03-02 17:32:56 954 2

空空如也

空空如也

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

TA关注的人

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