近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?( )
输入
输出
控制
记录
以下关于Python语言的描述,错误的是( )。
Python提供了常用的数据结构,并支持面向对象编程
Python是解释型语言
Python是一种高级程序设计语言
Python程序在运行前需要预先编译
以下不属于面向对象程序设计语言的是( )。
C++
Python
Java
C
下面有关Python类定义的说法,错误的是( )。
Python类实例化时,先执行new()和init()
Python内置函数bool()对于自定义类有效,必须在新定义类中定义bool()函数
Python自定义类不能适用于for-in循环
Python自定义类可用getitem()魔术方法定义方括号运算符
有关下面Python代码的说法,错误的是 ( )。
最后一行代码将输出CBA
最后一行代码将不能输出CBA,因为没有定义print()函数
第3行代码的Data是strReverse类的数据属性
最后一行代码将自动执行init()函数
有关下面Python代码的说法,正确的是 ( )。
在倒数第2行代码中, a + Num(20) 将执行正确,而 Num(20).__add__(a) 将导致错误
由于类Num中没有定义加号运算符,所以倒数第2行代码中的 a + Num(20) 被执行时将导致错误
如果将倒数第2行代码中的 a.add(num(20)) 修改为 Num(20).add(a) 将导致错误,因为 Num(20) 不是一个对象,而a是类Num的对象
倒数第1行代码 print(a) 将被正确执行,虽然没有定义相关成员函数,或者称之为方法
有关下面Python代码的说法,正确的是 ( )。
manyData类可用于构造队列(queue)数据结构
在上面代码环境,代码 myData.__data.append(10) 可以增加10到 myData.__data 之中
len()是Python内置函数,不适用于上面代码环境中的manyData
异常处理可以用于自定义类,因此manyData类的pop()函数执行可可以增加异常处理代码,否则可能导致异常
有关下面Python代码的说法,错误的是 ( )。
moreData类可用于构造队列(queue)数据结构
代码倒数第2行连续push()用法将导致错误
moreData可以认为是list类型的适配器,裁剪了list功能
__data可以认为是moreData类的私有成员,只能在类内访问
某内容仅会出现 ABCDEFG ,其对应的出现概率为0.40、0.30、0.15、0.05、0.04、0.03、0.03,如下图所示。
按照哈夫曼编码规则,假设 B 的编码为 11 ,则 D 的编码为( )。
10010
10011
10111
10001
下面有关格雷码的说法,错误的是( )。
在格雷码中,任意两个相邻的代码只有一位二进制数不同。
格雷码是一种唯一性编码。
在格雷码中,最大数和最小数只有一位二进制数不同。
格雷码是一种可靠性编码。
有关下图的二叉树,说法正确的是( )。
既是完全二叉树也是满二叉树。
既是二叉搜索树也是平衡二叉树。
非平衡二叉树。
以上说法都不正确。
N个节点的二叉搜索树,其查找的平均时间复杂度为( )。
O(1)
O(N)
O(logN)
O(N2)
青蛙每次能调1或2步。下面是青蛙跳到第N步台阶Python实现代码。该段代码采用的算法是( )。
递推算法
贪心算法
动态规划算法
分治算法
Python字典值查找的时间复杂度是( )。
O(1)
O(N)
O(logN)
O(N2)
下面有关Python的in运算符说法错误的是( )。
对于不同的数据类型,in运算符的时间复杂度不同
对于set和dict类型,in运算符的时间复杂度是O(1)
对于list和tuple类型,in运算符的时间复杂度是O(N)
对于Python的in运算符,其时间复杂度相同
TCP/IP的传输层的两个不同的协议分别是UDP和TCP。
正确
错误
5G网络中,5G中的G表示Gigabytes/s,其中 1 GB = 1024 MB。
正确
错误
在面向对象中,类是对象的实例。
正确
错误
在Python类的定义中,可以有类属性和实例属性,类属性值被该类的对象共享。
正确
错误
在Python类的定义中,可以用魔术方法定义初始化函数或运算符函数等。
正确
错误
DFS是深度优先搜索算法的英文简写。
正确
错误
哈夫曼编码是一种有损压缩算法。
正确
错误
Python本身并不支持指针和引用语法,因此有关链表等算法或数据结构在Python中不能实现。
正确
错误
如果节点数为 ,广度搜索算法的最差时间复杂度为O(N)。
正确
错误
二叉搜索树的左右子树也是二叉搜索树。
正确
错误
小杨买饮料
时间限制:1.0 s
内存限制:128.0 MB
问题描述
小杨来到了一家商店,打算购买一些饮料。这家商店总共出售N种饮料,编号从0至N-1,其中编号为i的饮料售价ci元,容量li毫升。
小杨的需求有如下几点:
1. 小杨想要尽可能尝试不同种类的饮料,因此他希望每种饮料至多购买 1 瓶;
2. 小杨很渴,所以他想要购买总容量不低于L的饮料;
3. 小杨勤俭节约,所以在 1 和 2 的前提下,他希望使用尽可能少的费用。
方便起见,你只需要输出最少花费的费用即可。特别地,如果不能满足小杨的要求,则输出 no solution 。
输入描述
第一行两个整数N,L。
接下来N行,依次描述第i=0,1,...,N-1种饮料:每行两个整数ci,li。
输出描述
输出一行一个整数,表示最少需要花费多少钱,才能满足小杨的要求。特别地,如果不能满足要求,则输出 no
solution 。
特别提醒
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
样例输入 1
5 100
100 2000
2 50
4 40
5 30
3 20
样例输出 1
9
样例解释 1
小杨可以购买1,2,4号饮料,总计获得50+40+20=110毫升饮料,花费2+4+3=9元。
如果只考虑前两项需求,小杨也可以购买1,2,4号饮料,它们的容量总和为50+30+20=100毫升,恰好可以满足需求。但遗憾的是,这个方案需要花费2+5+3=10元。
样例输入 2
5 141
100 2000
2 50
4 40
5 30
3 20
样例输出 2
100
样例解释 2
1,2,3,4号饮料总计140毫升,如每种饮料至多购买 1 瓶,则恰好无法满足需求,因此只能花费100元购买0号饮料。
样例输入 3
4 141
2 50
4 40
5 30
3 20
样例输出 3
no solution
数据规模
对于40%的测试点,保证N≤20 ;1≤L≤100 ;li≤100。
对于70%的测试点,保证li≤100。
对于所有测试点,保证1≤N≤500 ;1≤L≤2000 ;1≤c
小杨的握手问题
时间限制:1.0 s
内存限制:128.0 MB
问题描述
小杨的班级里共有N名同学,学号从0至N-1。
某节课上,老师安排全班同学进行一次握手游戏,具体规则如下:老师安排了一个顺序,让全班N名同学依次进入教室。每位同学进入教室时,需要和已经在教室内且学号小于自己的同学握手。
现在,小杨想知道,整个班级总共会进行多少次握手。
提示:可以考虑使用归并排序进行降序排序,并在此过程中求解。
输入描述
输入包含2行。第一行一个整数N,表示同学的个数;第二行N个用单个空格隔开的整数,依次描述同学们进入教室的顺序,每个整数在0~N-1之间,表示该同学的学号。
保证每位同学会且只会进入教室一次。
输出描述
输出一行一个整数,表示全班握手的总次数。
特别提醒
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
样例输入 1
4
2 1 3 0
样例输出 1
2
样例解释 1
2号同学进入教室,此时教室里没有其他同学。
1号同学进入教室,此时教室里有2号同学。1号同学的学号小于2号同学,因此他们之间不需要握手。
3号同学进入教室,此时教室里有1,2号同学。3号同学的学号比他们都大,因此3号同学需要分别和另外两位同学握手。
0号同学进入教室,此时教室里有1,2,3号同学。0号同学的学号比他们都小,因此0号同学不需要与其他同学握手。
综上所述全班一共握手0+0+2+0=2次。
样例输入 2
6
0 1 2 3 4 5
样例输出 2
15
样例解释 2
全班所有同学之间都会进行握手,因为每位同学来到教室时,都会发现他的学号是当前教室里最大的,所以他需要和教室里的每位其他同学进行握手。
数据规模
对于30%的测试点,保证N≤100。
对于所有测试点,保证2≤N≤3×105。