
PAT甲级
甲级刷题历程
如椽大笔_S686
这个作者很懒,什么都没留下…
展开
-
1108 Finding Average (20分)测试点分析
只要过了题目提供的标准测试点,前两个测试点是没问题的。如果后两个测试点没过,一定是下面的问题:①.没有注意题目的取值范围在【-1000,1000】之间②.注意题目只有一个元素的时候,要求输出的是 number而不是numbers(测试点2)③.小数点后面没有数字也是合法输入。比如 59. 是完全合法的。附本人代码:#include<iostream>#include<string>#include<cctype>using namespace std;原创 2020-05-29 11:40:18 · 965 阅读 · 1 评论 -
1017 Queueing at Bank (25分) 最后两个测试点问题
这是一个奇坑无比的题!!这是一个奇坑无比的题!!这是一个奇坑无比的题!!首先我按题目的意思写出来,通过标准案例,然后提交,后两个测试点无法通过。然后我就分析原因。1.首先是分析得到结果,忽略了统计某些人虽然在17点之前来排队了,但是d到了下班时间仍然没有得到服务。2.按常理来说,你在排队,排到人家下班时间了,你就应该走了。但是最后一个测试点很有意思,你必须排到队伍第一个人超时服务(服务结束的时间超过了下班时间),然后第一个人结束服务以后(已经在17点之后了),这个时候后面的人才知道自己今天没戏了,原创 2020-05-24 23:57:17 · 895 阅读 · 6 评论 -
1014 Waiting in Line (30分)测试点分析
本题就是一个模拟题,较复杂,理清思路还是问题不大。不过这个题目有点坑的地方,比如如果一个顾客正在被服务,但是银行下班了,那么应该继续为该顾客服务,直到顾客完成需求。如果不考虑这一点,测试点2,4,5都无法通过。这个题目肯定需要用到队列,不过本人擅长vector,于是始终用vector的操作代替queue。附上本人代码#include<iostream>#include<vector>using namespace std;vector<int>arr[20原创 2020-05-24 21:27:25 · 743 阅读 · 1 评论 -
1109 Group Photo (25分)/1055 集体照 (25分)后三个测试点
这个题目很坏,如果是后三个测试点不对,一定是读题没准确。题目给的第二个输入变量为行数M/K等于每行人数(除最后一行)把这两个搞混了只能过前三个测试点。题目分析:关于m/2+1其实没必要,以最高的人为标杆,先左后右插入熟顺序,所得到的序列必定是满足题目要求(可自行推理)。于是乎本题目可以直接化为给人数排序,然后不断左右插入即可。比较方便的是vector可以用push_back后插,也可以insert前插,非常容易实现。(见代码1)关于前后插入元素,我不得再说一下string也很方便(代码2 )原创 2020-05-18 18:33:07 · 941 阅读 · 1 评论 -
1034 Head of a Gang (30分)测试点分析
简要分析这个题目想对复杂一点的,dfs以及bfs也没那么容易写,因为他要统计好几个量,单独一个比较难实现。我用dfs和bfs分别实现了,但是都是拿了20分,有三个测试点没过。分别是两个答案错误和一个段错误。测试点3,这个原因是数组开小了,因为1000条通话记录最多可以产生2000个不同的人。测试第2,这个原因是没有给答案排序正确,意思是你的答案可能是对的,但是输出顺序不对。测试点5,这个是...原创 2020-02-21 11:41:43 · 1252 阅读 · 2 评论 -
1091 Acute Stroke (30分)
学习BFS的好题目。题目大意就是给定一个三维数组,数组要么是0要么是1,然后,所给出的数据分成由1组成的块,如果该块的1的数量大于等于T,就加起来,求该结果。这个题目关键是在三维数组,其实和二维数组差不多,就是多处理一个方向而已,利用BFS可以很轻松实现。本题目给出的数据量很大(相对),不可以使用递归,不然很容易爆炸。#include<iostream>#include<...原创 2020-01-31 15:25:54 · 268 阅读 · 0 评论 -
1103 Integer Factorization (30分)
学习深度优先遍历的好题目。题目描述很简单,K-P因式分解,给定一个元素N,要求分解成K个元素的P次方相加,K可以重复,如果答案不唯一,给出元素之和最大的解。如果是暴力求解,估计悬,跑不了几个就炸了,这个题目可以转化成DFS求和,先预处理数据,把所有P次方小于等于N的元素算出来保存,然后用DFS,逐个分析,选择与不选择,进行遍历,找到结果以后就停止。关键是如何确定最优解,这个其实第一次就可以找...原创 2020-01-30 22:28:58 · 277 阅读 · 0 评论 -
PTA1085 Perfect Sequence (25分)
这是一个值得仔细学习的题目。给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。首先分析题目,要找完美数列,很自然可以想到排序,升序数列。然后呢,要找一个大一个小,很显然需要利用two pointers思想,也就是从两头往中间查,找到尾部第一个V【j】满...原创 2020-01-16 18:32:13 · 317 阅读 · 0 评论 -
1037 Magic Coupon (25分)测试点4分析
这个题并不是很难,一开始提交我除了第四个测试点没过,其他全过了。一般PAT的题目,测试点很坑的话,你去一搜,基本上全是测试点分析,但是刚好这个测试点没有,然后我就仔细分析了一下我的代码,我发现我喜欢用set和map进行自动排序,实际上这样也行,但是我忽略了一个问题就是,他会去重,不可以对重复数据进行排序,果然改成multiset解决了,但是我发现一个地方就是,multiset效率极其低下!代码...原创 2020-01-14 12:17:10 · 713 阅读 · 0 评论 -
1055 The World's Richest (25分)走向优秀之路
今天写的第一个题,题目描述看起来并不男,这个也确实很容易想,一开始直接用结构体存储数据,然后每次创建新的结构体数组保存每次查询的人进行 自定义cmp结构体排序,很容易实现,第一次跑出了唯一一个超时没有出来,其他还是可以的。代码如下:#include<iostream>#include<string>#include<algorithm>#include...原创 2020-01-07 18:09:20 · 139 阅读 · 0 评论 -
1082 Read Number in Chinese (25分)
写这篇文章主要是标记一下,这个题做出来了是做出来的,但是感觉远远达不到我的要求,写了1个小时。。80+行二刷的时候优化一下!#include<iostream>#include<string>#include<vector>using namespace std;string digit[10] = { "ling","yi","er","san",...原创 2020-01-06 20:47:54 · 218 阅读 · 0 评论 -
1014 福尔摩斯的约会 (20分)/1061 Dating (20分)百分百解决你的测试点过不了!
解决测试点过不了!原创 2020-01-06 14:20:25 · 566 阅读 · 0 评论 -
浮点数判断误差修正
浮点数运算误差修正原创 2020-01-05 14:39:52 · 695 阅读 · 0 评论 -
sscanf与sprintf的用法详解
sscanf与sprintf的用法详解原创 2020-01-05 13:15:28 · 243 阅读 · 0 评论 -
C/C++对数组赋初值的方法memset,fill
memset与fill的用法原创 2020-01-05 12:50:59 · 2220 阅读 · 0 评论 -
c/c++语言中常用的math函数
c语言中基本math库函数的使用原创 2020-01-05 10:53:04 · 1574 阅读 · 0 评论 -
scanf与printf使用详解
scanf与printf的基本使用方法详解原创 2020-01-05 10:29:15 · 3680 阅读 · 0 评论 -
刷算法必备的基础C/C++知识(1)
本文章将持续更新两个月,记录在刷PAT甲级过程中遇到的一些基础或者实用性的知识1.1 变量的类型及其范围- [ ] int 型4个字节,占32位,范围(-2×1031,2×1031-1) 大致范围:2*10^9- [ ] long long 型 8个字节,64位,范围 (-2×10^63^,2×10^63^-1) 大致范围:9×10^18int 与 long l...原创 2020-01-05 09:27:54 · 214 阅读 · 0 评论 -
重新开始写代码啦
写在前面的话今天是1月5号,终于可以闲下来专心撸代码了。本人报名了20年三月份的PAT 甲级考试,花了200+大洋,不得不说这个还是蛮贵的,我现在还有两个月的时间,我现在估计也就乙级80左右的水平,好好刷题吧,希望能够取得满意的分数。...原创 2020-01-05 08:50:16 · 635 阅读 · 1 评论