zoukankan      html  css  js  c++  java
  • 2017 初赛PJ 错题解析

    没脸地贴出记录

    期望得分:82.5

    实际得分:42.5(不借助任何资料及计算器)

    出现的低级失误(共计36分):

    1.T28(9) 因ubound写成rbound痛失9分(明明全对的……)

    T27(3)
    result%m
    正确答案: result
    

    该取模的时候才取模!不能养成步步取模的习惯

    3.T8(1.5) 裸的zeller公式都能算错……还算错三遍
    w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1注意m+1,这玩意儿切忌心算,必须动手算!

    4.T14(1.5) 若串 S = “copyright”,其子串的个数是( )。要算空串!45+1

    5.T21(5) 找规律的题已经找出规律了但由于心算,痛失5分

    6.T23(8) 那么大一个return 0;我没看见!痛失8分

    7.T24(8) 眼残算错了一个数,这玩意儿检查的时候估计检查不出来,只能第一遍算的时候细心细心再2细心

    小知识点

    • 从(2022 )年开始,NOIP 竞赛将不再支持 Pascal 语言。
    • 计算机存储数据的基本单位是(Byte)。
    • 下列不属于面向对象程序设计语言的是(C )。

    搞不懂的题

    第 26 题

    阅读程序写结果

    #include<iostream>
    using namespace std;
    int main()
    {
        int n, m;
        cin >> n >> m;
        int x = 1;
        int y = 1;
        int dx = 1;
        int dy = 1;
        int cnt = 0;
        while (cnt != 2)
        {
            cnt = 0;
            x = x + dx;
            y = y + dy;
            if (x == 1 || x == n)
            {
                ++cnt;
                dx = -dx;
            }
            if (y == 1 || y == m)
            {
                ++cnt;
                dy = -dy;
            }
        }
        cout << x << " " << y << endl;
        return 0;
    }
    输入 1:4 3
    输出 1:_________(3 分)
    
    输入 2:2017 1014
    输出 2:_________(5 分)
    
    1.正确答案: 1 3
    2.正确答案: 2017 1
    

    第 25 题

    阅读程序写结果

    #include<iostream>
    using namespace std;
    int main()
    {
        string ch;
        int a[200];
        int b[200];
        int n, i, t, res;
        cin >> ch;
        n = ch.length();
        for (i = 0; i < 200; i++)
            b[i] = 0;
        for (i = 1; i <= n; i++)
        {
            a[i] = ch[i - 1] - '0';
            b[i] = b[i - 1] + a[i];
        }
        res = b[n];
        t = 0;
        for (i = n; i > 0; i--)
        {
            if (a[i] == 0)
                t++;
            if (b[i - 1] + t < res)
                res = b[i - 1] + t;
        }
        cout << res << endl;
        return 0;
    }
    输入:1001101011001101101011110001
    输出:_________
    
    18(WA)
    正确答案: 11
    

    T17

    第 17 题
    设 A 和 B 是两个长为 n 的有序数组,现在需要将 A 和 B 合并成一个排好序的数组,任何以元素比较作为基本运算的归并算法在最坏情况下至少要做( )次比较。
     A. n^2
     B. n log n
     C. 2n
     D. 2n - 1
    正确答案: D
    

    考察归并排序,可参考《大话数据结构》9.8节。
    这题考的是比较次数,而不是时间复杂度或空间复杂度。

    先看看最好的情况,设有序数组A[4] = {1, 3, 5, 7}, 有序数组B[4] = {8, 10, 12, 14}, 数组C[8]用来存储比较后的结果。

    1与8比较,把1放到C中,C[] = {1}
    3与8比较,把3放到C中,C[] = {1, 3}
    5与8比较,把5放到C中,C[] = {1, 3, 5}
    7与8比较,把7放到C中,C[] = {1, 3, 5, 7}
    剩下的不用比较,直接放到C中,C[] = {1, 3, 5, 7, 8, 10, 12, 14}
    共比较了4次,即n次
    
    >再看看最坏的情况,设有序数组A[4] = {1, 3, 5, 7}, 有序数组B[4] = {2, 4, 6, 8}, 数组C[8]用来存储比较后的结果。
    1与2比较,把1放到C中,C[] = {1}
    2与3比较,把2放到C中,C[] = {1, 2}
    3与4比较,把3放到C中,C[] = {1, 2, 3}
    4与5比较,把4放到C中,C[] = {1, 2, 3, 4}
    5与6比较,把5放到C中,C[] = {1, 2, 3, 4, 5}
    6与7比较,把6放到C中,C[] = {1, 2, 3, 4, 5,6}
    7与8比较,把7放到C中,C[] = {1, 2, 3, 4, 5, 6, 7}
    最后的8不用比较,直接放到C中,C[] = {1, 2, 3, 4, 5, 6, 7, 8}
    共比较了7次,即2n - 1次
    
  • 相关阅读:
    2019年下半年学习总结
    要看的积累
    【长期积累】Java
    【长期积累】数据库
    一些知识总结
    一些小总结
    优秀前端框架Semantic UI
    windows nodejs express的安装
    形象的讲解angular中的$q与promise(转)
    centos6.5 install mongodb
  • 原文地址:https://www.cnblogs.com/sjsjsj-minus-Si/p/11634681.html
Copyright © 2011-2022 走看看