PAT2021年春季3月份备考_按照套卷刷真题(5-2)

博主分享了在PAT编程考试中的时间管理和解题策略,强调了STL使用的重要性以及合理分配时间以应对不同难度题目。文章指出,考试中理解题意、正确运用业务逻辑及稳定底层实现是关键,同时提到了输入方法的选择和处理特殊情况如负数的注意事项。
摘要由CSDN通过智能技术生成

题干: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;
    }
    
    

     

 

REGISTER ADDRESS REGISTER DATA(1) HEX 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 LVDS_ RATE_2X 0 0 0 0 0 0 0 0 0 0 0 0 0 GLOBAL_ PDN 2 PAT_MODES_FCLK[2:0] LOW_ LATENCY_E N AVG_EN SEL_PRBS_ PAT_ FCLK PAT_MODES SEL_PRBS_ PAT_GBL OFFSET_CORR_DELAY_FROM_TX_TRIG[5:0] 3 SER_DATA_RATE DIG_GAIN_ EN 0 OFFSET_CORR_DELAY _FROM_TX_TRIG[7:6] DIG_ OFFSET_ EN 0 0 0 1 0 0 0 0 4 OFFSET_ REMOVA L_SELF OFFSET_ REMOVAL_ START_ SEL OFFEST_ REMOVAL_ START_ MANUAL AUTO_OFFSET_REMOVAL_ACC_CYCLES[3:0] PAT_ SELECT_ IND PRBS_ SYNC PRBS_ MODE PRBS_EN MSB_ FIRST DATA_ FORMAT 0 ADC_RES 5 CUSTOM_PATTERN 7 AUTO_OFFSET_REMOVAL_VAL_RD_CH_SEL 0 0 0 0 0 0 0 0 0 0 CHOPPER_EN 8 0 0 AUTO_OFFSET_REMOVAL_VAL_RD B 0 0 0 0 EN_ DITHER 0 0 0 0 0 0 0 0 0 0 0 D GAIN_ADC1o 0 OFFSET_ADC1o E GAIN_ADC1e 0 OFFSET_ADC1e F GAIN_ADC2o 0 OFFSET_ADC2o 10 GAIN_ADC2e 0 OFFSET_ADC2e 11 GAIN_ADC3o 0 OFFSET_ADC3o 12 GAIN_ADC3e 0 OFFSET_ADC3e 13 GAIN_ADC4o 0 OFFSET_ADC4o 14 GAIN_ADC4e 0 OFFSET_ADC4e 15 PAT_PRB S_LVDS1 PAT_PRBS_ LVDS2 PAT_PRBS_ LVDS3 PAT_PRBS_ LVDS4 PAT_LVDS1 PAT_LVDS2 HPF_ ROUND_ EN_ADC1-8 HPF_CORNER_ADC1-4 DIG_HPF_ EN_ADC1-4 17 0 0 0 0 0 0 0 0 PAT_LVDS3 PAT_LVDS4 0 0 18 0 0 0 0 PDN_ LVDS4 PDN_ LVDS3 PDN_ LVDS2 PDN_ LVDS1 0 0 0 0 INVERT_ LVDS4 INVERT_ LVDS3 INVERT_ LVDS2 INVERT_ LVDS1 19 GAIN_ADC5o 0 OFFSET_ADC5o 1A GAIN_ADC5e 0 OFFSET_ADC5e 1B GAIN_ADC6o 0 OFFSET_ADC6o 1C GAIN_ADC6e 0 OFFSET_ADC6e 1D GAIN_ADC7o 0 OFFSET_ADC7o 1E GAIN_ADC7e 0 OFFSET_ADC7e 1F GAIN_ADC8o 0 OFFSET_ADC8o 20 GAIN_ADC8e 0 OFFSET_ADC8e 21 PAT_PRB S_LVDS5 PAT_PRBS_ LVDS6 PAT_PRBS_ LVDS7 PAT_PRBS_ LVDS8 PAT_LVDS5 PAT_LVDS6 0 HPF_CORNER_ADC5-8 DIG_HPF_ EN_ADC5-8 23 0 0 0 0 0 0 0 0 PAT_LVDS7 PAT_LVDS8 0 0
最新发布
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Exodus&Focus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值