期望得分: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次