- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
NOI试题及答案
一、选择题(每题5分,共30分)
以下数据结构中,适合实现“先进先出”逻辑的是()
A.栈B.队列C.二叉树D.哈希表
在一棵具有n个节点的完全二叉树中,若根节点的编号为1,则编号为k(k1)的节点的父节点编号为()
A.2kB.2k+1C.k/2(向下取整)D.k/2(向上取整)
下列排序算法中,平均时间复杂度为O(nlogn)的是()
A.冒泡排序B.插入排序C.快速排序D.直接选择排序
对于无向图,下列说法正确的是()
A.边数一定大于节点数B.不存在自环边C.任意两个节点之间都有边相连D.每条边都没有方向
在程序中,若要存储一个包含10个整数的有序序列,且需要频繁在序列头部和尾部进行插入和删除操作,以下哪种数据结构效率最高()
A.数组B.单向链表C.双向链表D.栈
以下关于算法复杂度的说法,错误的是()
A.算法的时间复杂度描述了算法执行时间与输入规模的关系
B.若算法的时间复杂度为O(n),则输入规模增大时,执行时间会线性增长
C.算法的空间复杂度仅与算法中使用的变量数量有关
D.一个算法的时间复杂度可能低于其最坏情况下的时间复杂度
二、填空题(每题6分,共30分)
已知一个数组为[3,1,4,2,5],采用冒泡排序对其进行升序排序,第一趟排序结束后,数组的状态为__________。
有一个包含5个节点的无向连通图,最少需要__________条边才能保证图是连通的。
若一棵二叉树的前序遍历序列为ABDECF,中序遍历序列为DBEAFC,则该二叉树的后序遍历序列为__________。
采用动态规划算法解决“数字三角形”问题,数字三角形如下:
7
38
810
2744
45265
从顶部到底部的路径中,路径上数字之和最大的是__________。
5.已知一个有向图的邻接矩阵如下(行和列分别对应节点1-4):
0100
0010
1001
0000
从节点1出发,经过3条边后能到达的节点是__________。
三、编程题(每题20分,共40分)
迷宫问题
题目描述
给定一个m×n的迷宫,迷宫由0(可通行)和1(障碍物)组成。从左上角(1,1)出发,只能向上下左右四个方向移动,求到达右下角(m,n)的最短路径长度(路径长度为移动的步数,起始位置算0步)。若无法到达,输出-1。
输入格式
第一行输入两个整数m和n(1≤m,n≤100),表示迷宫的行数和列数。
接下来m行,每行输入n个整数(0或1),表示迷宫的布局。
输出格式
输出最短路径长度或-1。
示例输入
33
010
000
110
示例输出
4
活动安排问题
题目描述
有n个活动,每个活动有开始时间s_i和结束时间e_i(s_ie_i)。选择若干个活动,使得任意两个活动都不重叠,求最多能选择的活动数量。
输入格式
第一行输入一个整数n(1≤n≤1000),表示活动的数量。
接下来n行,每行输入两个整数s_i和e_i(1≤s_i,e_i≤10^9),表示活动的开始时间和结束时间。
输出格式
输出最多能选择的活动数量。
示例输入
4
13
24
35
46
示例输出
2
答案
一、选择题
B(队列的核心特性是先进先出,栈是后进先出,二叉树和哈希表无此逻辑)
C(完全二叉树中,若节点编号为k,左孩子编号为2k,右孩子为2k+1,故父节点为k//2)
C(快速排序平均时间复杂度为O(nlogn),冒泡、插入、直接选择排序平均复杂度为O(n2))
D(无向图的边无方向,A选项边数可小于节点数(如树),B选项允许自环,C选项是完全图的定义)
C(双向链表在头部和尾部插入、删除操作的时间复杂度均为O(1),数组头部操作需移动元素,单向链表尾部操作需遍历)
C(空间复杂度还与递归深度、数据存储结构等有关,并非仅由变量数量决定)
二、填空题
[1,3,2,4,5](冒泡排序第一趟从后往前比较,将最小元素1“冒”到首位,过程:3和1交换→3和4不换→4和2交换→4和5不换)
4(n个节点的无向连通图最少边数为n-1,即树的结构)
DEBFCA(根据前序和中序遍历构建二叉树:根为A,左子树前序BDE、中序DBE;右子树前序CF、中序FC,后序遍历为左子树后序+右子树后序+根)
30(动态规划递推:从底部向上,每个位置取下
文档评论(0)