
PAT 甲级
文章平均质量分 83
有三只土豆
这个作者很懒,什么都没留下…
展开
-
1155 Heap Paths (30point(s)) - C语言 PAT 甲级
* 按照由右到左 dfs 遍历完全二叉树,队列存储路径,遇到叶子节点输出路径* 判断大小顶堆,父节点一直比子节点大为大顶堆,父节点一直比子节点小为小顶堆,否则不是堆原创 2020-07-08 18:29:45 · 199 阅读 · 0 评论 -
1154 Vertex Coloring (25point(s)) - C语言 PAT 甲级
* 把图的所有边存起来* 每次查询,遍历每条边,检查颜色* 颜色的个数排序后去重原创 2020-07-08 18:28:44 · 178 阅读 · 0 评论 -
1153 Decode Registration Card of PAT (25point(s)) - C语言 PAT 甲级
* 排好序按要求输出原创 2020-07-08 18:27:23 · 629 阅读 · 0 评论 -
1152 Google Recruitment (20point(s)) - C语言 PAT 甲级
* 截取字符串,转换成数字,判断是否为素数原创 2020-07-08 18:26:58 · 345 阅读 · 0 评论 -
1151 LCA in a Binary Tree (30point(s)) - C语言 PAT 甲级
1151 LCA in a Binary Tree (30point(s))The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U and V as descendants.Given any two nodes in a binary tree, you are supposed to find their LCA.Input Specification:原创 2020-07-08 18:26:31 · 143 阅读 · 0 评论 -
1150 Travelling Salesman Problem (25point(s)) - C语言 PAT 甲级
* 判断是否是 cycle,能否构成回路* 判读是否是 simple cycle,构成的回路,仅首尾节点相同* 判断是否是 TS,路径节点个数等于图节点个数 N + 1,因为首尾节点均是起点原创 2020-07-08 18:21:11 · 177 阅读 · 0 评论 -
1149 Dangerous Goods Packaging (25point(s)) - C语言 PAT 甲级
* 利用二分查找,没有不相容物品即可装箱原创 2020-07-08 18:19:27 · 259 阅读 · 0 评论 -
1148 Werewolf - Simple Version (20point(s)) - C语言 PAT 甲级
* 又是初看题目毫无头绪的题1. 数组 v[101] 记录每个人说的话2. 数组 a[101] 记录每次假设的实际身份,-1 为狼人,0 为好人3. 每次假设后遍历一次每个人说的话,若和假设的身份冲突,说明此人说谎,添加至 lie[101]4. 数组 lie[101] 最终有一个狼人和一个好人,则符合题目,否则,从第 2 步继续假设原创 2020-07-08 18:19:04 · 400 阅读 · 1 评论 -
1147 Heaps (30point(s)) - C语言 PAT 甲级
* 父节点一直比子节点大为大顶堆,父节点一直比子节点小为小顶堆,否则不是堆* 输出后序遍历原创 2020-07-08 18:18:36 · 135 阅读 · 0 评论 -
1146 Topological Order (25point(s)) - C语言 PAT 甲级
* 保存每个节点的入度* 当到达某节点时,将此节点能到达的节点入度减 1* 遍历所给序列节点时,有入度不为 0 的节点,说明不是拓扑排序原创 2020-07-08 18:10:57 · 159 阅读 · 0 评论 -
1145 Hashing - Average Search Time (25point(s)) - C语言 PAT 甲级
* 先更新 Msize 为第一个大于等于其本身的素数,表示真正的哈希表大小* 平方探测法插入 N 个数据* 查询 M 个数据的时间,就是指查找长度注意:* 查询时,j <= msize,正常来说 (a + 0 * 0) % msize 等价于 (a + msize * msize) % msize,所以不需要加等号* 但本题需要有等于号,是因为不加 PAT 后台过不了原创 2020-07-08 18:09:50 · 152 阅读 · 0 评论 -
1144 The Missing Number (20point(s)) - C语言 PAT 甲级
直接申请 <limits.h> 中 INT_MAX 大小的数组,居然 AC 了原创 2020-07-08 18:08:37 · 156 阅读 · 0 评论 -
1143 Lowest Common Ancestor (30point(s)) - C语言 PAT 甲级
* 先遍历一遍看看所给节点是否在二叉树中* 最低公共节点表示,两节点一定分别在最低公共节点左子树和右子树中* 因为是二叉搜索树,所以两节点是否在某节点的左右子树,可以用节点值的大小判断原创 2020-07-08 18:07:30 · 140 阅读 · 0 评论 -
1142 Maximal Clique (25point(s)) - C语言 PAT 甲级
对于每次所给的点集* 在点集中的点,循环判断是否两两相连 * 若是,则为 Clique, * 遍历不在点集中的点,看是否有点和 Clique 中的点均相连 * 若没有,则为 Maximal * 若有,则可以确定仅仅是 Clique * 否则,Not a Clique原创 2020-07-08 18:06:04 · 158 阅读 · 1 评论 -
1141 PAT Ranking of Institutions (25point(s)) - C语言 PAT 甲级
* 从题目上也可看出,又是一道排序题原创 2020-07-08 18:01:49 · 120 阅读 · 0 评论 -
1140 Look-and-say Sequence (20point(s)) - C语言 PAT 甲级
* 每次利用前一个字符串生成下一个字符串,难点似乎在于如何确定字符数组的大小(实际上,数组大小多提交几次就能知道了(╥﹏╥))?或者是我未体会到此题的精髓?* 求大佬解答_(┐「ε:)_原创 2020-07-08 18:01:12 · 175 阅读 · 0 评论 -
1139 First Contact (30point(s)) - C语言 PAT 甲级
* 记录关系图和性别* 循环遍历,记录符合条件的路径注意:* 不能直接按照整数读取,有 -0000 存在* 若起始节点和终节点本身是好友,应判断此种情况,避免循环提前结束原创 2020-07-08 17:55:55 · 568 阅读 · 0 评论 -
1138 Postorder Traversal (25point(s)) - C语言 PAT 甲级
后序遍历的第一个节点一定是最左最下的那个节点* 若左子树存在,则一定在左子树中* 若左子树不存在,右子树存在,则一定在右子树,即一定在右子树的左子树中* 若遍历到第一个叶节点,则为后序遍历的第一个节点原创 2020-07-08 17:53:05 · 151 阅读 · 0 评论 -
1137 Final Grading (25point(s)) - C语言 PAT 甲级
* 似乎又是一道排序题,处理好排序即可原创 2020-07-08 17:51:02 · 166 阅读 · 0 评论 -
1136 A Delayed Palindrome (20point(s)) - C语言 PAT 甲级
* 此题难点在于大数的相加。思路是让数组存数字时,个位数在数组低位 a[0] 上,此时两数相加可直接进位,省去进位移动数组的麻烦1. 读取初始值时特殊处理一次即可2. 利用自定义函数逆转数组,输出数组即可原创 2020-07-08 17:50:35 · 159 阅读 · 0 评论 -
1135 Is It A Red-Black Tree (30point(s)) - C语言 PAT 甲级
1. 因为是二叉搜索树,且给了先序序列,所以可以直接建立一颗二叉搜索树2. 判断题目所给红黑树需满足的条件,仅需判断 2、4、5 条件 1. 判断 2:根节点为黑 2. 判断 4:节点为红,孩子节点为黑 3. 判断 5:递归判断每个节点到叶子节点包含的黑节点个数原创 2020-07-08 00:15:35 · 713 阅读 · 0 评论 -
1134 Vertex Cover (25point(s)) - C语言 PAT 甲级
* 记录下 M 条边两边的端点号* 对每个集合的询问,遍历所有边是否满足端点至少有一个在集合中原创 2020-07-08 00:13:56 · 128 阅读 · 0 评论 -
1133 Splitting A Linked List (25point(s)) - C语言 PAT 甲级
1. 题目中链表的地址从小到大排列,故可以利用数组下标当链表地址2. 两个数组分别记录链表数据,链表 next 地址3. 遍历链表输出原创 2020-07-08 00:12:40 · 135 阅读 · 0 评论 -
1132 Cut Integer (20point(s)) - C语言 PAT 甲级
以字符串的形式读入数据 N* 分成前后两部分判断* 注意判断 A、B 不能为 0原创 2020-07-08 00:12:14 · 117 阅读 · 0 评论 -
1131 Subway Map (30point(s)) - C语言 PAT 甲级
每次询问,DFS 计算一次* v\[\]\[\] 记录地铁图,line\[\]\[\] 记录站点所在线路* path\[\] 记录最终路径,transfer\[\] 记录最终路径的线路编号* tpath\[\] 记录 dfs 过程中临时路径,ttransfer\[\] 记录 dfs 过程中临时路径的编号* 根据经停站个数最少,换乘次数最小,记录最终值输出原创 2020-07-08 00:10:39 · 264 阅读 · 0 评论 -
1130 Infix Expression (25point(s)) - C语言 PAT 甲级
输出中缀表达式,相当于中序遍历* 左子树或右子树存在,需要 `()` 把左右子树括起来* 把输出括号加入中序遍历原创 2020-07-08 00:07:23 · 252 阅读 · 0 评论 -
1129 Recommendation System (25point(s)) - C语言 PAT 甲级
* 利用数组记录每个编号询问的次数* 推荐位未满最大值 K,直接进入推荐位,排序输出* 推荐位已满最大值,仅需要和推荐位的末尾比较注意:* 每次询问过后,此编号的询问次数才能加 1* 所以第一次询问时,推荐位为空,什么也不输出* 题目中,K 最大为 10,所以排序最多只需要排 10 个数,最开始我直接全排序,然后直接超时原创 2020-07-08 00:05:58 · 146 阅读 · 0 评论 -
1128 N Queens Puzzle (20point(s)) - C语言 PAT 甲级
* 判断是否在同行、同列* 判断是否在同对角线:两个点的横坐标之差是否等于纵坐标之差原创 2020-07-08 00:04:30 · 146 阅读 · 0 评论 -
1127 ZigZagging on a Tree (30point(s)) - C语言 PAT 甲级
利用队列进行层序遍历,利用栈进行 Z 字型输出* 层序遍历,正常顺序入队* 偶数层出队,直接入栈,不打印* 奇数层出队前,先让栈中所有元素出栈,再出队并打印* 若树的最大层数为偶数,节点均出队后,栈中会有剩余元素未输出,所以用队列遍历完后,要把栈中剩余元素打印原创 2020-07-08 00:03:22 · 777 阅读 · 0 评论 -
1126 Eulerian Path (25point(s)) - C语言 PAT 甲级
关键词:欧拉图,并查集先用并查集判断是否为联通图,若是连通图再继续判断欧拉图1. Eulerian(欧拉图):联通图,每个节点度为偶数2. Semi-Eulerian(半欧拉图):连通图,只有两个节点度为奇数,其他均为偶数3. Non-Eulerian:既不是欧拉图也不是半欧拉图原创 2020-07-08 00:01:47 · 152 阅读 · 0 评论 -
1125 Chain the Ropes (25point(s)) - C语言 PAT 甲级
1. 用数组下标表示绳子长度2. 用数组记录每种长度绳子的个数3. 由最小值开始折叠绳子,完毕即为最大值* 感谢 OliverLew (LuXu) 大佬:https://oliverlew.github.io/PAT/Basic/1070.html原创 2020-07-08 00:00:33 · 529 阅读 · 0 评论 -
1124 Raffle for Weibo Followers (20point(s)) - C语言 PAT 甲级
1. 用数组记录获奖人的姓名2. 用 s + count x n + r 计算中奖人的号码原创 2020-07-08 00:00:08 · 100 阅读 · 0 评论 -
1123 Is It a Complete AVL Tree (30point(s)) - C语言 PAT 甲级
* 建树直接上 AVL 代码* 层序遍历用队列遍历* 判断完全二叉树 * 若一个节点没有孩子节点,则这个节点后的所有节点也没有孩子节点,即为完全二叉树 * 否则不是完全二叉树原创 2020-07-07 23:59:42 · 708 阅读 · 0 评论 -
1122 Hamiltonian Cycle (25point(s)) - C语言 PAT 甲级
哈密顿环必须同时满足以下条件:1. 构成一个环路2. 经过图中的所有节点3. 除首尾节点为同一节点出现两次,其他节点只能出现一次针对其特点,写一个判断函数即可原创 2020-07-07 23:57:16 · 548 阅读 · 0 评论 -
1121 Damn Single (25point(s)) - C语言 PAT 甲级
1. 用 -1 当初始值,均为单身狗(因为有 0 号客人,所以最好不用 0 当初始值)2. 用数组映射一对伴侣3. 用 -2 表示客人到场。读取客人入场,用映射寻找自己的伴侣,当自己单身或伴侣还未到场,自己用 -2 表示到场4. 若映射的伴侣状态为 -2 到场,则两人配对成功,两人用 -3 表示脱离单身狗标签,单身狗数目减二原创 2020-07-07 23:55:54 · 158 阅读 · 0 评论 -
1120 Friend Numbers (20point(s)) - C语言 PAT 甲级
* 题目是朋友数,实际上求“朋友证号“,那就简单了(是的,简单了),最大数为 9999,最大的证号为 36,数组记录一下然后输出原创 2020-07-07 23:50:16 · 169 阅读 · 0 评论 -
1119 Pre- and Post-order Traversals (30point(s)) - C语言 PAT 甲级
重点在于理解先序和后序无法得到唯一中序的原因* 先序遍历,中左右* 后序遍历,左右中* 每次遍历到根节点中时,需要确定左右子树, * 假设以先序的左找后序的左 * 若后序的左和中之间有节点,说明中间节点即为右子树,所以能唯一确定左右子树 * 若后序的左和中之间没有节点,那这个左节点既可以当左子树根,也可以当右子树根,出现了不唯一原创 2020-07-07 23:49:53 · 184 阅读 · 0 评论 -
1118 Birds in Forest (25point(s)) - C语言 PAT 甲级
并查集* 边读取数据,边合并集合* 最后有几个集合,就有几颗树* 对于每次查询,直接返回并查集结果原创 2020-07-07 23:47:37 · 136 阅读 · 0 评论 -
1117 Eddington Number (25point(s)) - C语言 PAT 甲级
1. 降序排序骑车距离2. 天数由 0 升序,依次比较,即可找到最大天数原创 2020-07-07 23:46:08 · 280 阅读 · 0 评论 -
1116 Come on! Let‘s C (20point(s)) - C语言 PAT 甲级
* 用数组记录相应的获奖状态原创 2020-07-07 23:45:33 · 139 阅读 · 0 评论