瞎扯淡
据说PAT能充浙大考研复试成绩能充各大小企业笔试能提高艹代码的熟练程度主要是能装逼,遂报了个名玩,顺便企图能赶上各大神的大一水平。
做了30题发现就这么做过不总结似乎并没有什么卵用,于是开一篇文章不定时总结一下自己跳过的坑,顺便看看能不能帮后来人少爬几个坑。
仓库地址:
/nbShawnLu/PAT
关于爬过的坑:
1002:注意和为0的情况,类似的有1009。
1013:用STL最后一个case超时,改用数组解决,这个问题比较常见。
1016:如果有用户没有通话,不要打印该用户的名字和月份。
1018:要充分理解题目,带着n辆自行车,在途经各站时,每一站都要保证车够用。
1026:做完这道题才知道高中老师说的那句话:“题目的每一句话都有用。”
1.every pair of players can play for at most 2 hours
2.The waiting time must be rounded up to an integer minute(s).
//原谅宝宝英语不好,后来才知道round up to integer真的是四舍五入而不是向上取整,为了这个case推翻重写3次还不知道错哪的宝宝心里苦。
3.第三段题目意思理解了再去写,没完全理解之前写了也是白写。
1028:名字或成绩相同按照ID排序。还有,最后一例总超时,我踏马注的只剩下输入输出还超时……解决方法要么用scanf,要么用ios::sync_with_stdio(false)关闭和stdio的同步,代价是不能和stdio混用。类似的cin超时有1032,1054。
1029:应该是卡二分法,宝宝跑出来980ms,差点不够用。
1032:要是用int注意输出时的位数,有几例应该是有野node,所以不能单纯的靠判断next是否重复来判断。类似的有1052。
1033:好大一个坑。1.case2注意四舍五入与截断。2.case3注意第一个加油站不在起点。
1034:某些方法的童鞋注意后面通话的两个人分别出现在已经存在的两个团队时要记得合并。
1035: 1个account的时候注意单复数,还是那句话,要充分读题。
1040: 要考虑偶数个对称的情况。
1056:想当然的把跑道个数3写进代码忘记用NG变量了。。。好像是第二次了。。。告诉我不是一个人。
1059:注意输入1。
1065-1068:这四道貌似是保研复试题,涉及很经典的算法和较复杂的数据结构,酣畅淋漓。
1066:想来想去好像也只能写一棵AVL树来算了。
1067:主要思想判断环的个数。
1068:背包问题,最后一个case卡remain的判断剪枝。
好用的库函数与对应的头文件名
iomanip:
setfill(char c);
setw(int i);
setprecision(int i);
algorithm:
find(itbegin,itend,val)
(stable_)sort(itbegin,itend,func)
sstream
.9.11
回见了PAT。
总结下这次PAT测试,真题已经被同步到练习题1116-1119。
前两题比较水,理解了意思不难,20分钟一题,第三题和1034差不多,花了30分钟。
最后一题对我来说简直是送命题,本身对树的三种遍历的特点和转化不是很熟悉,虽然说留了将近两个小时给第三题,但是拿到题的第一眼心里想的还是:完了,这踏马怎么可能做出来。题目是说给个先序给个后序,来判断树是否唯一,并给出一种中序遍历。满脑子黑人问号:怎么判断是否唯一?怎么推树?唯一都不一定推得出来你跟我说不唯一?讲道理当场是瞎蒙的,如果一个子树的先序和后序刚好相反,那么就不唯一。(其实好像应该是如果有结点只有一个孩子的时候不唯一。)考试的时候太紧张没时间想那么多了,30个结点400ms随便写应该都不会炸吧。浪费了很多草稿纸凑了半天找了半天规律砸了半天代码以后,终于在4:10分能跑起来了,整整90分钟……解决了几个越界以后第一次提交……3个段错误+一堆格式错误……WTF……只剩15分钟了,不管了开100的数组……提交……全格式错误……WTF again……讲道理到这时候虽然没想过能全过,但是一个case都过不了是不服的,毕竟两个sample都能过……这个时候奇迹来了……我也不知道怎么开光了在输出最后加了个\n……提交……妈的全红……一看时间16:28……(讲道理我以前做题目从来没在最后一行加\n,也从来没错啊。)
所以说,PAT最大的两个疑问就是:1.这踏马怎么会错?2.这踏马怎么会对?
终于有别人大一水平了,接下来好好准备考研初试……
如果觉得《【PAT】PAT那些破事》对你有帮助,请点赞、收藏,并留下你的观点哦!