CSP2020-S1
作者:互联网
选择题
1.请选出以下最大的数
A.(556)10
B.(777)8
C.210
D.(22F)16
2.操作系统的功能是()
A.负责外设与主机之间的信息交换
B.控制和管理计算杋系统的各种硬件和软件资源的使用
C.负责诊断机器的故障
D.将源程序编译成目标程序
3.现有一段 8 分钟的视频文件,它的播放速度是每杪 24 帧图像,每帧图像是幅分辨率为 2048×1024 像素的 32 位真彩色图像。请问要存储这段原始无压缩视频,需要多大的存储空间?
A. 30G B. 90G C.150G D.450G
4.今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行:进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈底元素为
A.b B.a C.d D.c
5.将(2,7,10,18)分别存储到某个地址区间为0~10的哈希表中,如果哈希函数h(x)=(),将不会产生冲突,其中 amodb 表示 a 除以 b 的余数。
A. x2mod11
B. 2xmod11
C. xmod11
D.⌊x2⌋mod11 ,其中 ⌊x2⌋ 表示下取整
6.下列哪些问题不能用贪心法精确求解?()
A. 霍夫曼编码
B. 0-1背包问题
C. 最小生成树
D. 单源最短路问题
7.具有η个顶点,e条边的图采用邻接表存储结构,进行深度优先遍历运算的时间复杂度为()。
A. O(n+e) B.O(n2) C.O(e2) D.O(n)
8.二分图是指能将顶点划分成两个部分,每一部分内的顶点间没有边相连的简单无向图。那么,24个顶点的二分图至多有()条边
A.144 B.19 C.48 D.122
9.广度优先搜索时,一定需要用到的数据结构是()
A.栈
B.二叉树
C.队列
D.哈希表
10.一个班学生分组做游戏,如果每组三人就多两人,每组五人就多三人,每组七人就多四人,问这个班的学生人数n在以下哪个区间?已知n<60。
A.30<n<40
B.40<n<50
C.50<n<60
D.20<n<30
11.小眀想通过走楼梯来锻炼身体,假设从第 1 层走到第 2 层消耗 10 卡热量,接着从第 2 层走到第 3 层消耗 20 卡热量,再从第 3 层走到第 4 层消耗 30 卡热量,依此类推,从第 k 层走到第 k+1 层消耗 10k 卡热量 (k>1) 。如果小明想从 1 层开始,通过连续向上爬楼梯消耗 1000 卡热量,至少要爬到第几层楼?
A.14 B.16 C.15 D.13
12.表达式a(b+c)-d的后缀表达形式为()
A. abc+d-
B. -+abcd
C. abcd+-
D. abc+*d-
13.从一个4×4的棋盘中选取不在同一行也不在同一列上的两个方格,共有()种方法。
A.68 B.72 C.86 D.64
14.对一个n个顶点、m条边的带权有向简单图用 Dijkstra算法计算单源最短路时,如果不使用堆或其它优先队列进行优化,则其时间复杂度为
A. O((m+n2)logn)
B. O(mn+n3)
C. O((m+n)logn)
D. 0(n2)
15.1948年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。
A.欧拉( Leonhard Euler)
B.冯·诺伊曼(John von Neumann)
C.克劳德·香农(Claude shannon)
D.图灵(Alan turing)
阅读程序
(1)
1)n必须小于1000,否则程序可能会发生运行错误。()
2)输出一定大于等于0
2)若将第13行的j=0改为j=i+1,程序输出可能会改变。()
3)将第14行的d[i]<d[j]改为d[i]!=d[j],程序输出不会改变。()
5)若输入n为100,且输出为127,则输入的d[i]中不可能有()
A. 127 B.126 C.128 D.125
6)若输出的数大于,则下面说法正确的是()
A.若输出为偶数,则输入的d[i]中最多有两个偶数。
B.若输出为奇数,则输入的d[i]中至少有两个奇数。
C.若输出为偶数,则输入的d[i]中至少有两个偶数。
D.若输出为奇数,则输入的d[i]中最多有两个奇数。
(2)
假设输入的n,k和都是不超过100的正整数,且k不超过n,并假设rand()函数产生的是均匀的随机数,完成下面的判断题和单选题:
1)第9行的x的数值范围是L+1到R,即[L+1,R]。()
2)将第19行的d[a]改为d[b],程序不会发生运行错误。()
3)(2.5分)当输入的d[i]是严格单调递增序列时,第17行的swap平均执行次数是()。
A.O(nlogn)
B.O(n)
C.O(logn)
D.O(n2)
4.(2.5分)当输入的d[i]是严格单调递减序列时,第17行的“swap”平均执行次数是()
A. O(n2)
B. O(n)
C. O(nlogn)
D. O(logn)
5.(2.5分)若输入的 d[i] 为 i ,此程序①平均的时间复杂度和②最坏情况下的时间复杂度分别是
A. O(n),O(n2)
B. O(n),(nlogn)
C. O(nlogn),O(n2)
D. O(nlogn),O(nlogn)
6)(2.5分)若输入的d[i]都为同一个数,此程序平均的时间复杂度是
A. O(n)
B. O(logn)
C. O(nlogn)
D. O(n2)
(3)
1)输出可能为0。()
2)若输入的两个字符串长度均为101时,则m=0时的输出与m=100时的输出是一样的()
3)若两个字符串的长度均为n,则最坏情况下,此程序的时间复杂度为0(n!)。()
4)(2.5分)若输入的第一个字符串长度由100个不同的字符构成,第个字符串是第一个字符串的倒序,输入的m为0,则输出为()
A.49 B.50 C.100 D.-1
5)(4分)已知当输入为0123\n32\n1
时输出为4,当输入为812345\n54321\n1
时输出为14,当输入为61234567\n76543210\n1
时输出为28,则当输入为0123456789\n9876543210\n1
输出为()。其中\n为换行符。
A.56 B.84 C.102 D.68
6)(4分)若两个字符串的长度均为 n ,且 0<m<n−1 ,且两个字符串的构成相同(即任何一个字符在两个字符串中出现的次数均相同),则下列说法正确的是()。提示:考虑输入与输出有多少对字符前后顺序不样
A.若n、m均为奇数,则输出可能小于0。
B.若n、m均为偶数,则输出可能小于0。
C.若n为奇数、m为偶数,则输出可能小于0。
D.若n为偶数、m为奇数,则输出可能小于0。
完善程序、
1.
(分数背包)小S有 n 块蛋糕,编号从 1 到 n 。第 i 块蛋糕的价值是 w 体积是 v 。他有一个大小为 B 的盒子来装这些蛋糕,也就是说装入盒子的蛋糕的体积总和不能超过 B 。
他打算选择一些蛋糕装入盒子,他希望盒子里装的蛋糕的价值之和尽量大。为了使盒子里的蛋糕价值之和更大,他可以任意切割蛋糕。具体来说,他可以选择一个 α(0<α<1),并将一块价值是 w ,体积为 ⅴ 的蛋糕切割成两块,其中一块的价值是 α⋅w ,体积是 α⋅v ,另一块的价值是 (1−α)⋅w ,体积是 (1−α)⋅ⅴ 。
他可以重复无限次切割操作现要求编程输岀最大可能的价值,以分数的形式输出比如 n=3,B=8 三块蛋糕的价值分别是4、4、2,体积分别是5、3、2。那么最优的方案就是将体积为5的蛋糕切成两份,一份体积是3,价值是4,另一份体积是2,价值是1.6,然后把体积是3的那部分和后两块蛋糕打包进盒子。最优的价值之和是 8.4 ,故程序输出 42/5
输入的数据范围为: 1≤n≤1000,1≤B≤105;1≤wivi≤100 。提示:将所有的蛋糕按照性价比w/v从大到小排序后进行贪心选择。试补全程序。
1.①处应填().
A. w[j]/v[j] < w[j+1] /v[j+1]
B. w[j]/v[j] > w[j+1] /v[j+1]
C. v[j] * w[j+1] < v[j+1] * w[j]
D. w[j] * v[j+1] < w[j+1] * v[j]
2.②中应填()
A. w[1]<=B
B. v[1]<=B
C. w[1]>=B
D. v[1]>=B
3.③中应填()
A. print(v[1],w[1]);return 0;
B. curV=0;curW=0;
C. print(w[1],v[1]);return 0;
D. curV=v[1];curW=w[1];
4.④中应填()
A. curW * v[i]+curV[i] * w[i],v[i]
B. (curW-w[i])v[i]+(B-curV)w[i],v[i]
C. curW+v[i],w[i]
D. curWv[i]+(B-curV)w[i],v[i]
5.⑤中应填()
A. curW,curV
B. curW,1
C. curV,curW
D. curV,1
2.
(最优子序列)取 m=16 ,给出长度为 n 的整数序列 a1,a2,...,an(0≤ai<2m) 。对于一个二进制数 x ,定义其分值 w(x) 为 x+popcnt(x) ,其中popcnt(x) 表示 x 二进制表示中 1 的个数。对于一个子序列 b1,b2,...,bk, 定义其子序列分值 S 为 w(b1⊕b2)+w(b2⊕b3)+W(b3⊕b4)+...+w(bk−1⊕bk) 。其中 ⊕ 表示按位异或。对于空子序列,规定其子序列分值为0。
求一个子序列使得其子序列分值最大,输出这个最大值。
输入第一行包含一个整数 n(1≤n≤40000)。接下来一行包含 n 个整数 a1,a2,...,an 。
提示:考虑优化朴素的动态规划算法,将前位和后位分开计算 Max[x][y] 表示当前的子序列下一个位置的高 8位是x、最后一个位置的低 8 位是 y 时的最大价值。
1.①处应填().
A. x>>=1
B. x^=x&(x^(x+1))
C. x-=x|-x
D. x^=x&(x^(x-1))
2.②中应填()
A. (a&MS)<>B
C. a&(1<<B)
D. a&(Ms<<B)
3.③中应填()
A. -INF
B. Max[y][x]
C. 0
D. Max[x][y]
4.④中应填()
A. Max[x][z]+w(y^z)
B. Max[x][z]+w(a^z)
C. Max[x][z]+w(x^(z<<B))
D. Max[x][z]+w(x^z)
5.⑤中应填()
A. to_max(Max[y][z],v+w(a^(z<<B)))
B. to_max(Max[z][y],v+w((x^z)<<B)
C. to_max(Max[z][y],v+w(a^(z<<B)))
D. to_max(Max[x][z],v+w(y^z))
标签:curV,输出,CSP2020,S1,中应,蛋糕,Max,输入 来源: https://www.cnblogs.com/lastorder-/p/13838119.html