- 赵一静 的博客
九月集训9月11日错题解析
- @ 2024-9-11 21:45:17
CSP-S2022初赛
一、单项选择题
假设在基数排序过程中,受宇宙射线的影响,某项数据异变为一个完全不同的值。请问排 序算法结束后,可能出现的最坏情况是()。
A.移除受影响的数据后,最终序列是有序序列
B.移除受影响的数据后,最终序列是前后两个有序的子序列
C.移除受影响的数据后,最终序列是一个有序的子序列和一个基本无序的子序列
D.移除受影响的数据后,最终序列基本无序
解析:
基数排序是按桶排序的思想,某一个值的改变,不会造成其他数字排序失败。排除这个数字,其他数字仍是有序序列。所以选A。
错误解析:
没有学过基数排序,导致对基数排序不太熟悉。
每个顶点度数均为的无向图称为“正规图”。由编号为从到n的顶点构成的所有正规图,其中包含欧拉回路的不同正规图的数量为()。
A.n!
B.(n-)!
C.n!/
D.(n-)!/
解析:
一个图是欧拉图(包含欧拉回路)的条件是充分必要条件是每个顶点的度都是偶数度。
因此根据题目的定义,正规图每个顶点度数都为,那么该图一定是欧拉图,其中包含欧拉回路。每个顶点度都为,设共有n个顶点,总度数为,每条边提供个度,因此有n条边。也就是n个顶点n条边连成一个环。顶点连出的一条边连到的顶点有n-种选择。
假设连到顶点,第步顶点连到的顶点除了顶点,有n-种选择;
假设连到顶点,第步顶点连到的顶点除了顶点,,有n-种选择;
第n-步,顶点n-只能连到顶点n,有种选择。
顶点n再连接到顶点,形成环。共有:
种情况
而这样的环也可以是从顶点连到顶点n,顶点n连到顶点n-,顶点n-连到顶点n-,……,连到顶点,顶点连到顶点得到。因此相同的环是算了两遍的,因此应该再除以。所以选D。
错误解析:
不知道欧拉回路是什么意思,没有学过。
小明希望选到形如“省A·LLDDD”的车牌号。车牌号在“·”之前的内容固定的位号码中,前位必须是大写英文字母,后位必须是阿拉伯数字(L代表A至Z,D表示至,两个L和三个D之间可能相同也可能不同)。请问总共有()个可供选择的车牌号?
A.
B.
C.
D.
解析:
-
确定第个“L"位置的字母,有种情况
-
确定第个“L"位置的字母,有种情况
-
确定第个“D"位置的数字,有种情况
-
确定第个“D"位置的数字,有种情况
-
确定第个“D"位置的数字,有种情况
根据乘法原理,总情况数为种情况。所以选C。
错误解析:
计算出了问题,以后认真计算。
二、阅读程序
(1)
1 #include <iostream>
2 #include <string>
3 #include <vector>
4
5 using namespace std;
6
7 int f(const string &s, const string &t)
8 {
9 int n = s.length(), m = t.length();
10
11 vector<int> shift(128, m + 1);
12
13 int i, j;
14
15 for (j = 0; j < m; j++)
16 shift[t[j]] = m - j;
17
18 for (i =0; i<= n - m; i += shift[s[i + m]]){
19 j =0;
20 while(j < m && s[i +j] == t[j]) j++;
21 if (j == m) return i;
22 }
23
24 return -1;
25 }
26
27 int main()
28 {
29 string a ,b;
30 cin >> a >> b;
31 cout << f(a, b) << endl;
32 return 0;
33 }
当输入为“baaabaaabaaabaaaa aaaa”,第行的“j++”语句执行次数为 ()。
A.
B.
C.
D.
解析:
手动运行,在纸上执行程序。
shift['a']为1。
i为,baaa中的第一个b与aaaa中的第个a不同,直接跳过。此时s[i+m]是b,shift['b']为m+,i直接增加m+,也就是。
i为,指向第组baaa中的第个a。匹配个a,j++执行次,遇到b与a不相等。此时s[i+m]是a,shift['a']为,i增加。
i为,指向第组baaa中的第个a。匹配个a,j++执行次,遇到b与a不相等。此时s[i+m]是a,shift['a']为,i增加。
i为7,指向第组baaa中的第个a。匹配个a,j++执行次,遇到b与a不相等。此时s[i+m]是a,shift['a']为,i增加。
i为,指向第组baaa中的第个b。此时s[i+m]是b,shift['b']为m+,i直接增加m+,变为。
i为,执行字符串最后aaaa中的第个a,与模式串aaaa匹配4个a,j++执行次。
j++总计执行次。所以选B。
错误解析:
没有认真去模拟过程,导致计算出错。