
PTA学习
文章平均质量分 69
DsirNg
学不懂誓不罢休
不会的很多
一个一个来
但是你要记得快乐
不要害怕
做能力之外的才叫进步
展开
-
案例6-1.4 地下迷宫探索分数 30
问题分析迷宫节点和边:节点表示灯和开关。边表示通道,节点之间的直接连通关系。目标:从指定起点出发,遍历所有节点(点亮灯)。如果无法遍历所有节点,输出部分遍历路径并以 0 结束。路径唯一性:采用深度优先搜索(DFS),并在访问时优先选择编号最小的邻居节点。解题步骤输入数据:读取节点数 NNN、边数 MMM、起始节点 SSS。使用邻接表存储边的关系,并对每个节点的邻居列表排序。DFS 遍历:从起始节点 SSS 开始,访问所有能访问的节点。记录路径,同时注意在回退时也记录路径(形成回原创 2024-12-09 14:26:58 · 357 阅读 · 1 评论 -
基础实验6-2.6 最短工期(拓扑排序)
建图与拓扑排序:项目中的任务可以看作一个有向图,其中每个任务的开始和结束里程碑就是图中的节点,任务的工作时长则是有向边的权重。如果任务从节点 u 到节点 v,工作时长为 w,则我们在图中添加一条从 u 到 v 的有向边,并记录权重为 w。拓扑排序:为了找到最早完工时间,首先需要对任务依赖关系进行拓扑排序。这可以帮助我们在考虑每个任务时,确保其所有前置任务都已完成。计算最早完成时间:在进行拓扑排序的同时,我们可以计算每个节点的最早完成时间。假设我们在拓扑排序过程中访问到节点 u,则节点 u原创 2024-12-06 00:46:34 · 651 阅读 · 0 评论 -
L2-051 满树的遍历(C++思路简单,递归的办法)
先序遍历我们口语用递归的方式去找首先是根节点找到它从左到了的结点,如果结点下面没有结点,就按顺序到旁边的结点输出如果有结点我们找到这些规律就是,需要通过父节点,把字结点存在一起,然后排个序,结点下面有节点的,继续往下面找,没有结点了,返回根节点下面的下一个结点,直接用一个递归就可以解决原创 2024-04-25 22:15:31 · 1576 阅读 · 1 评论 -
L2-050 懂蛇语(c++语言超简单用自带库函数)
这题的思路就是,帮刚开始存入的字符串提取出每一个单词的第一个字母然后在组成一个字符串,用来当作mapsnake中的string中的map键值而本身的字符串就存入string类型的vector容器中,作为map的值然后把后面有一样的以开头组成的字符串 也存入string类型的vector容器中这个时候里面就有2个及其以上的字符串然后在查询的时候,相同操作,提取单词第一个字符组成的字符串在map键值里面找,如果没有就输出这个查找的字符串原创 2024-04-25 00:19:28 · 1713 阅读 · 2 评论 -
PTA 天梯赛 L2-006 树的遍历(c++代码简单易懂,有详解)
1、层序遍历先用一个队列来存结点 输出元素然后看这个结点有没有左右结点都有的话先存左节点,因为队列先进先出首先后序的根节点是在后面的,这个时候我们在中序里面找到与之匹配的元素 这个位置为index在index的左边便是左子树,在它的右边便是右子树然后后序遍历的规则是左孩子 右孩子 根节点我们可以通过index减去中序遍历的第一个的位置,得到当前这个根节点一共多少个左子树元素后面的就是右子树的元素个数原创 2024-04-23 17:23:24 · 1089 阅读 · 0 评论 -
L2-048 寻宝图 PTA
用我们自己的想法思路来就是,直到这个岛屿的周围全是0的时候,这个就是一个单独的岛屿。我们遇到一个不为0的点,去找上下左右,如果上下左右中有一个点不为0。那就在找这个点的上下左右 以此类推,你会发现,这有一个递归。其中dx和dy不懂得可以看一下注释,还不懂的可以评论一下。而宝藏的话,只要这个岛屿上面有一个就是有。而终止点就是该点位0 或者到了边界。这一题的思路是用深度遍历。因此dfs就可以这样写。其他的就是按照思路来写。原创 2024-03-23 11:06:53 · 760 阅读 · 1 评论 -
L1-043 阅览室 PTA
思路就是,先定义一个二维数组books[N][2];book[][0]代表是否借出去,books[][1]代表上一次的时间;sumtime代码有借有还的书的总时间。就是用一本书输入S的时候将时间存进去,输入E的时候用当前时间减去之前的时间,然后把这一天的有借有还的书的时间全部加起来 然后求平均时间。注意的是,可能会出现一本书没有S,就是没有借出去,需要判断(可以用二维数组)重要的是 一本书换的时候,需要把书归位。关于这道题的思路很简单。原创 2024-03-23 10:24:54 · 374 阅读 · 1 评论