![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT
haikuc
这个作者很懒,什么都没留下…
展开
-
Pop Sequence
题目描述Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence o...原创 2019-07-08 13:13:11 · 116 阅读 · 0 评论 -
1131 Subway Map
用深搜或者广搜做,用dij不行,因为这题中两点间的状态还跟之前的点有关,跟普通的dij的题不一样。比如两条路1 2 4和 1 3 4 5,4到5要不要换乘取决于走了2 4 还是 3 4。第三个测试点过不了应该就是这个问题。可以用这个用例测一下1到5或者5到1。广搜应该比深搜要快。深搜代码:#include<iostream>#include<vector>#inc...原创 2019-08-28 11:42:21 · 251 阅读 · 0 评论 -
08-图9 关键活动
多起点多终点的情况下,要把每个终点的latest设成所有终点中最大的earlist。#include<iostream>#include<functional>#include<vector>#include<algorithm>#include<numeric>#include<limits.h>#includ...原创 2019-08-22 13:39:08 · 160 阅读 · 0 评论 -
1103 Integer Factorization
网上基本都是深搜的解法,一开始用背包做陷进去了,其实背包也可以做。 建两个三维数组,三个维度分别为n,k,m(小于n的平方数总数,最大20)。 第一个数组记录在前m个数中拿满k个数,并且和为n的情况下,fac和的最大值。如果无法满足上述情况,就是0。 第二个数组记录如果拿第m个数,需要拿...原创 2019-08-21 15:02:42 · 106 阅读 · 0 评论 -
PAT甲级 坑点1001-1010
1004 Counting Leaves输入顺序不一定是父节点先于子节点。1010 Radix1.输入的radix没有大小限制,所以会产生越界。测试数据用long long int能过。2.找输出的时候需要用二分法,不然会超时。但是这个过程中也会产生越界,即使long long int也可能会越界。越界的话就会变成小于0的数字,所以可以用是否小于0判断有无越界。...原创 2019-08-07 18:16:27 · 185 阅读 · 0 评论 -
1082 Read Number in Chinese
万和亿两个单位都是只出现一次的,所以可以分解为每四位读一次,然后在间隔处加上万和亿。读四位的注意点:1.如果有高位存在,开头的零要读,否则不读。2.中间的多个零只读一次。3.结尾的零不读4.全零的话返回“”,即不读。超过四位的情况:1.小于8位,补0到8位,先读高四位(存在高位标志位为0),加“Wan”,再读低位(存在高位标志位为1)。2.大于8为,即9位。补0到12位,先读包含亿...原创 2019-08-19 11:59:10 · 91 阅读 · 0 评论 -
1073 Scientific Notation
这题用字符串处理会比较简洁。先提取出底数部分lo,指数部分exp,指数+1就是展开后小数点的位置dotpos。比如:0.5,小数点位置记0。然后分两种情况:1.dotpos<=0,就是底数小于1。2.dotpos>0,底数大于等于1,这种情况可以分为三种 2.1 小数点位置和底数部分长度一样 比如+5.0E+1。 2.2 dotpos大于底数部分长度...原创 2019-08-19 11:44:15 · 121 阅读 · 0 评论 -
PAT 甲级坑点 1011-1065
1012 The Best Rank1.成绩有并列。2.非降序排列的话名次和下标大小相反。1014 Waiting in Line17:00之前开始服务的无论到多晚都没关系。1015 Reversible Primes输入的是十进制,转成radix进制后,再倒序。1016 Phone Bills同一个用户的前后两个时间必须是online和offline才满足要求。on on on...原创 2019-08-14 10:38:27 · 344 阅读 · 0 评论 -
PTA坑点1021-1040
1024 科学计数法指数的绝对值不超过 9999,但是可能有超过四位数。比如00009。1030 完美数列可以根据之前得到的最长数列缩小范围。比如之前得到的最长数列是max,用i记录最小值,用j记录最大值,j就可以从i+max开始筛查,直到数列长度n。比较坑的是这个筛查过程如果从i+max->n就可以过,从n->i+max就过不了。1035 插入与归并判断是否是插入比较简单...原创 2019-08-02 10:29:07 · 131 阅读 · 0 评论 -
PTA坑点 1056-1075
1062 最简分数输入的两个分数大小不确定。1073 多选题常见计分法错误选项统计方法:正确答案ab,选择ac,那这题的错误选项就是b c。1074 宇宙无敌加法器1.最前面可能需要进位,比较简单的处理方法是在进制表前面再补两个0(因为就算全是01进制,最多进2位),然后把加数补0到和进制表一样长。2.输出不能用atoi处理,因为输入可能大于int。...原创 2019-08-06 09:53:40 · 159 阅读 · 0 评论 -
PTA 坑点 1008 数组元素循环右移问题
输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。坑点M可能大于N。原创 2019-07-31 22:09:34 · 181 阅读 · 0 评论 -
PTA 1005 继续(3n+1)猜想
输入格式:每个测试输入包含 1 个测试用例,第 1 行给出一个正整数 K (<100),第 2 行给出 K 个互不相同的待验证的正整数 n (1<n≤100)的值,数字间用空格隔开。坑点1.中间产生的一些结果可能会大于n。如果用数组保存mask,会越界。...原创 2019-07-31 22:08:12 · 196 阅读 · 0 评论 -
PTA 坑点1003 我要通过!
得到“答案正确”的条件是:1.字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;2.任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;3.如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。坑点1.根据第三个条件可以得到的正确答...原创 2019-07-31 22:06:19 · 238 阅读 · 0 评论 -
PTA坑点 1012-1020
1012 数字分类A2可能等于0,不能用是否为0判断这一类数字是否存在。1014 福尔摩斯的约会表示星期的那对英文字母限制为A-G原创 2019-08-01 09:20:49 · 155 阅读 · 0 评论 -
PTA坑点 1041-1055
1044 火星数字1.数字转火星文:如果火星文个位数位0十位数不为零,不输出十位数。2.火星文转数字:就一个单词的时候得判断是个位数还是十位数。1045 快速排序符合要求的主元肯定也是呆在正确位置的元素,但是呆在正确位置的元素不一定是主元。比如 5 4 3 2 1。1048 数字加密要先把两个字符串都补0到一样的长度。看样例会感觉只要补充A就行了,A补0和不补又是一样的,所以多余的...原创 2019-08-03 11:10:37 · 150 阅读 · 0 评论 -
最大子列和 输出结果和起始元素
要求:全负数:输出0,开始元素,结束元素。多个相同大小子数列:输出坐标小的。主要考虑两种特殊情况1.只有0和负数。(因为当前和为负数时会被置0,所以设置fakezero判断是否遇到了0。)2.最大子数列和为正,且在最大子数列前有很多0。(在最后过滤掉起始位置的所有0。)#include<iostream>using namespace std;int main() {...原创 2019-07-07 12:39:55 · 200 阅读 · 0 评论 -
树的同构
题目描述给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从...原创 2019-07-08 13:18:47 · 121 阅读 · 0 评论 -
1151 LCA in a Binary Tree
可以参考之前这题大神的解法 1143 Lowest Common Ancestor 柳婼 の blog, 不需要建树就可以做。这题先做个预处理,根据中序遍历的顺序把节点从0开始编号,记录在map中,然后把先序遍历数组中的值替换为对应节点的编号,这样得到的先序遍历就是二叉查找树的的先序遍历了。在query部分,把输入的值转换为编号,接下去就跟1143做法一样了。#include<ios...原创 2019-08-28 17:34:43 · 90 阅读 · 0 评论