随笔分类 -  PAT (Basic Level) Practice

1050 螺旋矩阵 (25 point(s)) (含部分测试数据)
摘要:上次写的记录 未AC错误代码,仅错误思路记录 。 又把这题写了一次,因为有了之前的思路,所以直接按照思路来拆解。 在下标的推断中还是耗了不少时间,像下面这个图一样,要把每层循环的上下左右边界分别拆开,然后分别列出不同边界第一层和第二层下标的表达式,而且还要考虑,变量 m n 之间与实际下标 -1 的 阅读全文

posted @ 2021-09-23 20:27 Atl212 阅读(81) 评论(0) 推荐(0)

1095 解码PAT准考证 (25 point(s))
摘要:写的时候有几个问题,刚开始以为考场的数据和日期的相似而共用,但是测试的时候发现,同考场的不一定同日期。所以又新建了一个结构体来存日期相关的数据。 测试点一、二、四。 题干太长看得有点意识模糊。写的时候只考虑了类型 2 查询无果,而没有考虑类型 1 和 3 。所以要参考类型 2 多加一个查询判断。 我 阅读全文

posted @ 2021-09-22 22:26 Atl212 阅读(103) 评论(0) 推荐(0)

1094 谷歌的招聘 (20 point(s)) (测试点一、二、四、五)
摘要:最开始的时候不记得截断字符串的参数是怎么传递的,所以用了手动拼接的方式来截断。 for(int j = 0; j < K; j++) tmp += str[i+j]; 写完后看了下,原来 substr() 有两个参数,第一个参数是 pos 起始位置,第二个参数 len 是长度。所以可以写成。 tmp 阅读全文

posted @ 2021-09-22 21:17 Atl212 阅读(602) 评论(0) 推荐(0)

1093 字符串A+B (20 point(s))
摘要:刚开始没有看明白题目的条件 “重复的字符必须被剔除” 稍微卡了一下,但是后面看了样例后就知道这个条件的意思了。实际上没有看明白的原因是没有根据题目条件,来理解样例输出和输出。 所以不能光看题目描述,根据描述来正确理解样例也是必要的。 参考了下别人,因为无论 A 还是 B 字符串,重复出现的字符串最终 阅读全文

posted @ 2021-09-22 20:48 Atl212 阅读(37) 评论(0) 推荐(0)

1092 最好吃的月饼 (20 point(s))
摘要:一遍过,常用的思路。用 map 记录 key 和 val 然后用 max 记录最大数据,最后遍历一次,将 max 的 val 输出即可。 参考了下别人的思路,因为无论是读取还是输出的时候,序号的顺序都是升序,所以不用 map 排序也可以,直接用 i ++ 下标存储和读取。 然后找最大值的时候把对应元 阅读全文

posted @ 2021-09-22 20:32 Atl212 阅读(48) 评论(0) 推荐(0)

1091 N-自守数 (15 point(s))
摘要:记录下调试中碰到的问题,不知道为什么在 devc++ 中添加查看字符串的时候就会卡住不能下一步,而把字符串的查看删除后就可以了。很神秘。 最开始没有将思路写清楚,把自己绕晕了。后面重新捋顺,一下就AC 了。 学下别人的方法,一个是用字符串截取 substr() 将 NK2 比 K 多出来的长度放入函 阅读全文

posted @ 2021-09-21 23:19 Atl212 阅读(51) 评论(0) 推荐(0)

1090 危险品装箱 (25 point(s))
摘要:当时用 map 发现有重复的 data 所以改成了 multimap ,但是改成 multimap 之后发现 int int 用数组方式插入的时候产生一个编译错误,百度了一下不晓得为什么,所以换成了用 insert() 和 make_pair() 的方式来插入。 c++中map插入元素的问题 C++ 阅读全文

posted @ 2021-09-21 22:17 Atl212 阅读(36) 评论(0) 推荐(0)

1089 狼人杀-简单版 (20 point(s))
摘要:最开始想通过样例给出的好人和狼的结果,结合输入找到其中的规律。但是找了半天没发现什么规律。 后面又看了看题干的条件, “有狼人撒谎但并不是所有狼人都在撒谎” 所以想是不是分别假设说话人,说狼的部分和说好人的部分有一个是错的,其他是对的,结合其他说话的序号,将本次好人和狼的结果的序号存起来。下一次循环 阅读全文

posted @ 2021-09-21 20:52 Atl212 阅读(132) 评论(0) 推荐(0)

1088 三人行 (20 point(s)) (测试点四)
摘要:两位正整数只到 10 不包括 0 ~ 9 。 前面获取 A B C 的部分确实考虑了 double 的精度问题。但是最后还是卡了测试点四,参考很多其他的文章也说了要考虑 C 丙是 double 的可能,但在定义 C 时可以看到确实是 double 类型。 后面想了想,除了获取 C 的部分,哪个部分还 阅读全文

posted @ 2021-09-21 14:58 Atl212 阅读(107) 评论(0) 推荐(0)

1087 有多少不同的值 (20 point(s))
摘要:刚开始没有确定题意,感觉应该是对通过算式得到的值标记,然后统计这些标记了的值。所以开了一个 vis 数组,存放这个值是否出现过。第一次出现就 ++ 统计个数。 但最开始的时候只是把数组大小定义为 2017 稍微试试样例的结果。但发现结果有问题,算出的值小于样例给出的 1480 而只有 1450 。 阅读全文

posted @ 2021-09-21 13:53 Atl212 阅读(41) 评论(0) 推荐(0)

1086 就不告诉你 (15 point(s))
摘要:比较简单的题目,将结果转换成字符串然后用 reverse() 函数来逆转结果。 不过要注意有两个测试点 比如逆转后高位是 0 的话需要消去 0 否则会错。所以最后用 stoi() 将字符串转换为数,消去高位 0 再输出。 当然避免高位 0 的做法还可以用循环加判断的方式,适用于1000位的无法用 i 阅读全文

posted @ 2021-09-20 11:20 Atl212 阅读(45) 评论(0) 推荐(0)

1085 PAT单位排行 (25 point(s)) (测试点五)
摘要:写的时候不知道怎么将字符串都转换成小写了,就弄了个循环一个个将大写转换成小写。 参考了其他文章,学到了 transform() 函数,搭配 toupper 和 tolower 就可以转换成大写或者小写。 transform(begin(sname), end(sname), begin(sname) 阅读全文

posted @ 2021-09-17 23:22 Atl212 阅读(190) 评论(0) 推荐(0)

1084 外观数列 (20 point(s)) (测试点四)
摘要:这题的处理跟前面这题比较相似 1078 字符串压缩与解压 (20 point(s))。 题目没有明说,刚开始还以为只是单纯数有多少个数字然后输出 “数字 重复次数” 但后面看见前面出现 1 1 后面也出现 1 1 的时候就怀疑这个想法,并且想到了前面写过的这题,所以觉得应该是输出连续出现的字符及其次 阅读全文

posted @ 2021-09-17 20:13 Atl212 阅读(61) 评论(0) 推荐(0)

1083 是否存在相等的差 (20 point(s))
摘要:水题 * 3 。 #include <bits/stdc++.h> using namespace std; int main() { int n; map<int, int> ans; cin >> n; for(int front = 1; front <= n; front++){ int c 阅读全文

posted @ 2021-09-16 22:54 Atl212 阅读(29) 评论(0) 推荐(0)

1082 射击比赛 (20 point(s))
摘要:虽然是水题还是看了下别人的写法,似乎可以不需要容器,在读取的时候记录最大最小的平方和,最后直接输出即可。这样还能剩一下空间和排序的时间。 参考代码 #include <bits/stdc++.h> using namespace std; int main() { int n, x, y; map< 阅读全文

posted @ 2021-09-16 22:51 Atl212 阅读(36) 评论(0) 推荐(0)

1081 检查密码 (15 point(s)) (测试点二)
摘要:卡了下测试点二,想了想应该都完成了题目给出五个判断条件的,所以应该跟这五个条件没什么关系。但是又没想出 string 有什么边界问题。所以直接参考了别人的文章。 原来是字符串中可能包含空格的问题,题目关于字符串的描述是 “每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束” 阅读全文

posted @ 2021-09-16 22:34 Atl212 阅读(111) 评论(0) 推荐(0)

1080 MOOC期终成绩 (25 point(s)) (测试点三)
摘要:当时翻遍了测试点三的错误可能分析,比如排序问题,-1 或者成绩为 0 问题,或者是四舍五入问题。但是看自己代码似乎都考虑了这些问题。 后面看了了别人的数据类型都是 int 想了想自己的是 double 会不会这个有问题。改成 int 之后果断 AC 。 但不太能够理解为什么用 double 会使得结 阅读全文

posted @ 2021-09-16 00:04 Atl212 阅读(205) 评论(0) 推荐(0)

1079 延迟的回文数 (20 point(s)) (测试点三、四、五)
摘要:这题还算比较容易,就是大整数的加法想了一会,不太熟练。但前面其实有写过一次大整数的加法 1074 宇宙无敌加法器 (20 point(s)) 。 写的时候不太记得是怎么把字符和字符串拼起来的了,所以这里用了一个 (char) 将数字转换成字符类型,写完回去看了看才知道原来当时用了 insert() 阅读全文

posted @ 2021-09-15 23:58 Atl212 阅读(133) 评论(0) 推荐(0)

1070 结绳 (25 point(s))
摘要:#include <bits/stdc++.h> using namespace std; int main() { double n, sum = 0, tmp; vector<double> robe; cin >> n; for(int i = 0; i < n; i++){ cin >> t 阅读全文

posted @ 2021-09-15 23:45 Atl212 阅读(45) 评论(0) 推荐(0)

1078 字符串压缩与解压 (20 point(s))
摘要:地址加来加去搞得有点晕头转向的,而且当时还以为是在控制字符,自增的时候没注意,把迭代器自增了,指向就不对了自然结果就错了。 所以用迭代器 auto 指向地址的时候得注意自增自减的运算,不然很容易把自己搞混,指向错误都不知道,然后调试代码半天。 而看了别人的代码才想到,字符串没有必要用迭代器,直接用数 阅读全文

posted @ 2021-09-15 23:43 Atl212 阅读(104) 评论(0) 推荐(0)

导航