![](https://img-blog.csdnimg.cn/20200311224941502.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PAT
浙大pat
AiChiMomo.
to be today
展开
-
PAT 1020
PAT 1020 题意 给出后序遍历,及中序遍历,求层序遍历。 节点个数N<=30 注意点 卡了一个段错误,虽说30很小,但如果是一条长链的话,2的30次方,用数组要炸。 所以用vector存一下吧。 #include <iostream> #include <cstring> #include <stdio.h> #include <stack&g...原创 2019-08-25 21:23:33 · 162 阅读 · 0 评论 -
PAT Pre- and Post-order Traversals (30 分)
题意: 给定一颗树的前序和后序遍历,让你判断这颗树是不是唯一的,让你输出中序遍历的答案。 题解: 后序遍历的最后一个节点必定是根,前序遍历第一个节点必定是根 每次从后续遍历的根出发,去前序遍历找对应的结点,因为前序(中左右),后序(左右中),根据前序遍历根的位置,左边的一定是这个根的兄弟树,而且左边这颗树必定是左子树,它自己是右子树。由此确定这棵树,那什么情况下有多解呢?即非叶结点只有一个...原创 2019-08-25 20:12:38 · 151 阅读 · 0 评论 -
PAT Is It a Complete AVL Tree (30 分)
题意: 给你一个序列,让你插入到AVL树中,然后输出该AVL树的层序遍历,以及是否是一个完全二叉树。 题解: 涉及到AVL树插入时候的左旋、右旋操作,一共四种情况。 左子树的左子树插入结点(左左),左旋。 左子树的右子树插入结点(左右),先对左子树左旋,再对此节点右旋。 右子树的右子树插入结点(右右),右旋。 右子树的左子树插入结点(右左),先对右子树右旋,再对此节点左旋。 代码:...原创 2019-08-25 21:32:42 · 140 阅读 · 0 评论 -
PAT 1154
codeforces 1012A Photo of The Sky ###题意 给你2n个数,将其随意组合成n个点,找一个长宽平行于xy轴的矩形覆盖这n个点,求最小矩形的面积。 ###题解 把2n个数分成两个集合X, Y。 那么,只要求X和Y集合中的最大差值,再相乘就行。 两种情况: 1.最大值最小值都在X集合,那么只要去考虑使得Y集合的最大差值 最小。 2.最小值在X集合,最大值在Y集合,那么只...原创 2019-08-16 19:14:03 · 209 阅读 · 0 评论 -
PAT 1109 Group Photo (25 分)
题意: 拍照片,让你根据升高排队,题好难读。 思路: sort一遍,我把行列搞错了... ... ...以致数组大小估计错误。 代码: #include <iostream> #include <cstring> #include <stdio.h> #include <stack> #include <cmath> #i...原创 2019-08-28 21:03:17 · 144 阅读 · 0 评论 -
PAT 1143 Lowest Common Ancestor (30 分)
题意: 给出一颗二叉搜索树的前序遍历,让你还原这棵树,然后给出k次询问,求结点a和b的LCA。 思路: 常规一点的就是建树后记录每个子节点的父亲以及结点的深度,然后普通LCA跑一下,这里不需要倍增,但是也不能分开得两次dfs(因为退化的二叉搜索树只有一条单链的时候,会炸),得先让两个结点跑到同一层,然后再一起去找爸爸,PAT的题所有操作都暴力就行。 这个题写了两个不易察觉的bug:1. 用...原创 2019-08-31 18:29:39 · 122 阅读 · 0 评论