信息学奥赛初赛天天练-89-CSP-S2023基础题1-linux常用命令、完全平方数、稀疏图、队列、散列表、二叉树、哈夫曼树

PDF文档公众号回复关键字:20240914

2023 CSP-S 选择题

单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)

1 在 Linux 系统终端中,以下哪个命令用于创建一个新的目录 ? ( )

A newdir
B mkdir
C create
D mkfold

2 从0,1,2,3,4 中选取 4 个数字,能组成( )个不同四位数(注:最小的四位数是 1000 最大的四位数是 9999)

A 96
B 18
C 120
D 84

3 假设 n 是图的顶点的个数,m 是图的边的个数,为求解某一问题有下面四种不同时间复杂度的算法。对于 m=Θ(n) 的稀疏图而言,下面的四个选项,哪一项的渐近时间复杂度最小( )

A O(m* sqrt(logn) * loglogn)
B O(n^2 + m)
C O(n^2/logm + m*logn)
D O(m + nlogn)

4 假设有 n根柱子,需要按照以下规则依次放置编号为 1,2,3,⋯的圆环:每根柱子的底 部固定,顶部可以放入圆环;每次从柱子顶部放入圆环时,需要保证任何两个相邻圆环的编号之和是一个完全平方数。请计算当有 4根柱子时,最多可以放置( )个圆环

A 7
B 9
C 11
D 5

5 以下对数据结构的表述不恰当的一项是( )

A 队列是一种先进先出(FIFO)的线性结构
B 哈夫曼树的构造过程主要是为了实现图的深度优先搜索
C 散列表是一种通过散列函数将关键字映射到存储位置的数据结构
D 二叉树是一种每个结点最多有两个子结点的树结构

2 相关知识点

1) 常用linux命令

ls:列出目录中的文件和子目录。
cd:切换当前工作目录。
pwd:显示当前工作目录的路径。
cp:复制文件或目录。
mv:移动文件或目录。
rm:删除文件或目录。
mkdir:创建新目录。
rmdir:删除空目录。
touch:创建空文件或更改文件的时间戳。
cat:查看文件内容或将多个文件合并为一个文件

2) 完全平方数

完全平方数是指一个整数可以表示为另一个整数的平方的形式

1(1 * 1)
4(2 * 2)
9(3 * 3)
16(4 * 4)
25(5 * 5)
36(6 * 6)
49(7 * 7)
64(8 * 8)
81(9 * 9)

3) 稀疏图

稀疏图(Sparse Graph)是指边数相对较少的图

在稀疏图中,顶点数为n,边数为m,它们之间的一般关系是m远小于n的平方 m<nlogn

4) 队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(head)进行删除操作,而在表的后端(tail)进行插入操作

队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头

队列可以理解成我们平时的排队,先进入的先出去

5) 散列表

散列表,英文名称为Hash Table,又称哈希表、杂凑表等

散列表是根据关键字直接访问的数据结构。散列表通过散列函数将关键字映射到存储地址,建立了关键字和存储地址之间的一种直接映射关系

例如:关键字集key = (17, 24, 48, 25),散列函数H(key) = key % 5,散列函数将关键字映射到存储地址下标,将关键字存储到散列表的对应位置

6) 二叉树

每个结点至多拥有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒,例如下面是一棵二叉树

7) 哈夫曼树

1 选剩下的两棵根权值最小的树合并成一棵新树

2 新树的根权值等于两棵合并前树的根权值和

3 重复1和2

哈夫曼编码

哈夫曼树的左右孩子进行编码称为哈夫曼编码,通常左边为0,右边为1

只对叶子节点进行编码/解码,编码唯一

哈夫曼编码是前缀编码,任何一个字符的编码都不是另一个字符编码的前缀(只有叶子节点编码)

哈夫曼编码左边为0,右边为1是通常规定,也可以左边为1右边为0,但确定后编码是唯一的

如果下图为字母a,b,c,d,e的编码,字母旁边对应数字为其出现的频率

3 思路分析

1 在 Linux 系统终端中,以下哪个命令用于创建一个新的目录 ? ( B )

A newdir
B mkdir
C create
D mkfold

分析

根据常用linux命令可知,创建一个目录为mkdir

2 从0,1,2,3,4 中选取 4 个数字,能组成( A )个不同四位数(注:最小的四位数是 1000 最大的四位数是 9999)

A 96
B 18
C 120
D 84

分析

由于0不能做首位,所以不能直接使用排列
分别把这5个数字放入到4位数的对应位
千位 可以是 1 2 3 4 有4种选择
百位 可以是包括0的5个数字任意一个,千位已经使用了1个,所以有4种选择
十位 同百位,有3种选择
个位 同十位,有2种选择
根据乘法原理
4 * 4 * 3 * 2 = 96 种

3 假设 n 是图的顶点的个数,m 是图的边的个数,为求解某一问题有下面四种不同时间复杂度的算法。对于 m=Θ(n) 的稀疏图而言,下面的四个选项,哪一项的渐近时间复杂度最小( )

A O(m* sqrt(logn) * loglogn)
B O(n^2 + m)
C O(n^2/logm + m*logn)
D O(m + nlogn)

分析

根据稀疏图的定义可知,顶点远数远大于边的图
假设n=16 ,m=2时,代入4个选项
A 2 * sqrt(log16) * loglog16=2 * sqrt(4) * log4 =2 * 2 * 2=8
B 16^2+2=256+2=258
C 16^2/1 + 2 * log16=256 + 2 * 4 = 264
D 2 + 16 * log16 = 2+16*4=66
从上述计算结果看A最小,所以选 A

4 假设有 n根柱子,需要按照以下规则依次放置编号为 1,2,3,⋯的圆环:每根柱子的底 部固定,顶部可以放入圆环;每次从柱子顶部放入圆环时,需要保证任何两个相邻圆环的编号之和是一个完全平方数。请计算当有 4根柱子时,最多可以放置( C )个圆环

A 7
B 9
C 11
D 5

分析

根据题目规则每个相邻圆环的编号之和是一个完全平方数,列举几个可能的完全平方数
4,9,16,25,36
尝试依次放入圆环,可知如下情况,可以放置最多
1和8,2和7,3和6,4和5都可以组成完全平方数
再继续放
7和9,6和10,5和11都可以组成完成平方数
无法继续再放入12使得和最上面的数组成完全平方数
因此最多可以放置11个圆环

5 以下对数据结构的表述不恰当的一项是( B )

A 队列是一种先进先出(FIFO)的线性结构
B 哈夫曼树的构造过程主要是为了实现图的深度优先搜索
C 散列表是一种通过散列函数将关键字映射到存储位置的数据结构
D 二叉树是一种每个结点最多有两个子结点的树结构

分析

A 队列的特点就是先进先出,即最先进入队列的元素最先被取出,正确
B 哈夫曼树(Huffman Tree)是一种特殊的二叉树,主要用于数据压缩。它的构造过程是根据字符出现的频率来构建一棵最优二叉树,以便在数据压缩过程中实现最优编码。这与图的深度优先搜索无关,因此是错误的
C 散列表(Hash Table)是一种通过散列函数将关键字映射到存储位置的数据结构,它可以实现快速的查找、插入和删除操作,正确
D 二叉树(Binary Tree)是一种特殊的树结构,其中每个结点最多只能有两个子结点,正确
因此选B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值