首页 > 编程知识 正文

2016年12月考试全真试卷(新题型)A级,pat题库

时间:2023-05-06 12:48:42 阅读:229991 作者:2168

题干:1137 Final Grading (25 分)

题解:做了40分钟,得满分,40分钟里面30分钟是在一步步的把业务逻辑变成代码,另外两个5分钟是用于思路的形成和程序的调试运行。。。通过这道题我们基本上认识到我们在考场上面的时间规划是这样的,我们把3个小时分成1个1小时和4个半小时,其中1个一小时和3个半小时用于正常的解题过程,剩下的1个半小时用于处理之前错误的测试点和根本没有解决的题目。。。其实这道题也是这样子的,就是其中一个环节“The output must be sorted in descending  of their final grades (G must be rounded up to an integer). ”我最早处理的方法错误了,后来根据输出的结果进行了修改,因为round up这个单词有很多的解释,我后面猜是向上取整数,然后又运行一遍,才符合题目给出的例子,而且运气更加好的是,我案例对了,整道题居然都对了。。。。而且这种考试我觉得有点不合理的地方,其实就是要看运气的地方,就是对于-1的处理方式,谁能想到这道题是把-1直接带到公式里面计算,简直震惊我。。。本来是要另外交代清楚地,因为毕竟-1和0是不一样的。。。。上数据库的时候应该老师应该都会讲null和0分的区别。。。。其实PAT里面还有很多的题目都是这样,如果你的思路刚好绕过了那些坑,那么恭喜你,如果你绕不过的话,那这题基本上就没戏了。。。但有时也不会那么极端,因为pat也会有测试样例过不去,后面还能拿不少分的情况。。。。所以在考场上还是要放平心态,不要去死磕一道题,前面的时间规划更大的作用是,知道如果实在做不出一道题的话,就要先爱笑的八宝粥,拿分是更要紧的事情,谁都保不准考场上会出什么幺蛾子。。。。pat的话,对于一道题的话,并不是分数越高,难度越大,最难的题目的位置是随机的!!!这点一定要注意,在一道题里面,要有大致的时间概念,一般的题目阅读,编程,调试一般每个步骤都要10分钟上下,总和在30分钟上下。。。较难的题目每个步骤一般都在15分钟上面,总和一般在45分钟以上。。。。总的来说,可以在考研的冲刺复习之前,能够经历这样的一场考试,可以说让我对复习的时间安排和心态调整有一次宝贵的预演和演习的机会,不管3月13号取得怎样的成绩,我都会比较坦然的接受,我目前比较保守的估分是60~70左右,如果在50分以下的话,我一般计划在考上浙大以后,我准备面试的时候再继续找时间学习相关的内容,因为考的不好,并不代表你没有付出努力去掌握知识,只是你掌握的还欠火候,继续努力就好了。。。。因为这个pat的内容,一般来说是比考研计算机408更难的。。。。我不知道去考这个证的人是不是都想408,140分以上。。。。这道题目某种程度上是一个对于STL的结构的综合应用。。。。STL是必须要学会使用的,虽然你可以选择手写,但是30分钟左右的做题时间,留给你编写和尤其是调试代码的时间是非常有限的,如果不用STL的话,是很难解决问题的,还有我建议你以后都用cin,不要在用scanf,我基本上做过一遍pat的题库,除了1,2道题,基本不会受两种输入方法的速度影响而超时。。。。就算有,那也是个别测试点,除非你想拿满分,不然去掉个别知识点,拿90分还不够吗?但是你如果用scanf,需要在输入的时候面对不小的麻烦和不优雅,这个和STL同理。。。。。PAT这种限制时间的编程测试能让你非常深刻的明白“不关注底层原理,专注于业务逻辑的实现”的重要性,因为很多时候业务逻辑已经足够漏洞百出,如果你的底层还是不够稳定,想想调试起来要有多复杂!!!如果在平常自己兴趣去开发还好,但这是考试,确实没有别的办法。 // A1137.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <bits/stdc++.h>using namespace std;int p, m,n;struct info { string id; int p; int mid; int final; int total; info() { p = -1; mid = -1; final = -1; total = -1; }};unordered_map<string, info> an;vector<info> bn;bool cmp(info x, info y) { if (x.total != y.total) { return x.total > y.total; } else if (x.id != y.id) { return x.id < y.id; }}int main(){#ifndef ONLINE_JUDGE FILE* s; freopen_s(&s, "in.txt", "r", stdin);#endif // !ONLINE_JUDGE cin >> p >> m >> n; string t1; int t2; for (int i = 0; i < p; i++) { cin >> t1 >> t2; an[t1].id = t1; an[t1].p = t2; } for (int i = 0; i < m; i++) { cin >> t1 >> t2; an[t1].id = t1; an[t1].mid = t2; } for (int i = 0; i < n; i++) { cin >> t1 >> t2; an[t1].id = t1; an[t1].final = t2; } for (auto it = an.begin(); it != an.end(); it++) { if (it->second.mid > it->second.final) { it->second.total = (int)(it->second.mid * 0.4 + it->second.final * 0.6+0.5); } else { it->second.total = it->second.final; } } for (auto it : an) { if (it.second.p >= 200 && it.second.total >= 60) { bn.push_back(it.second); } } sort(bn.begin(), bn.end(), cmp); for (int i = 0; i < bn.size(); i++) { cout << bn[i].id << " " << bn[i].p << " " << bn[i].mid <<" "<< bn[i].final << " " << bn[i].total << endl; } return 0;}

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。