【202609】Python八级
从PDF导入:【202609】Python八级
Python
120分钟
总分 99.0
27 题
试卷题目预览
第1题
中级
2.0分
单选
用数字 0、1、2、3、4、5 组成没有重复数字的三位数,且该三位数能被 3 整除,共有( )个。
第2题
中级
2.0分
单选
6 个人围成一圆桌就座,座位没有区分,但区分时针方向,且甲、乙两人必须相邻,则共有( )种不同坐法。
第3题
中级
2.0分
单选
将 6 个完全相同的小球放入 4 个不同的盒子中,每个盒子均可以为空,共有( )种不同的放法。
第4题
中级
2.0分
单选
某二叉树的先序遍历序列为 A B D E C F G,中序遍历序列为 D B E A F C G,则其后序遍历序列为( )。
第5题
中级
2.0分
单选
关于快速幂算法,下列说法正确的是( )。
第6题
中级
2.0分
单选
杨辉三角中,第 7 行第 3 个数(行、列均从 0 开始计数)是( )。
第7题
中级
1.0分
单选
一个长方形的长是宽的 3 倍,周长为 48,则该长方形的面积为( )。
第8题
中级
2.0分
单选
若 x + y = 7,x − y = 1,则 x × y 的值为( )。
第9题
中级
2.0分
单选
关于最小生成树(MST)算法,下列说法正确的是( )。
第10题
中级
2.0分
单选
某连通带权无向简单图的边集合为 {(1, 2, 5), (1, 3, 1), (2, 3, 3), (2, 4, 4), (3, 4, 2), (3, 5, 6), (4, 5, 7)},其中每条边的三元组 (u, v, w) 表示结点 u 和结点 v 之间有一条权值为 w 的无向边。使用 Kruskal 算法按边权从小到大扫描,第 3 条被选入最小生成树的边是( )。
第11题
中级
2.0分
单选
Floyd 算法经典三重循环 for k for i for j,最外层变量 k 代表( )。
第12题
中级
2.0分
单选
下列函数按渐进增长速度从慢到快排列,正确的是( )。
第13题
中级
2.0分
单选
在使用小根堆(优先队列)优化的 Dijkstra 算法中,堆中每个元素通常存储的是( )。
第14题
中级
2.0分
单选
对长度为 n 的数组使用差分数组支持 m 次区间加操作,最后通过一次前缀和还原每个位置的最终值,整个过程的渐进时间复杂度为( )。
第15题
中级
2.0分
单选
假设在 Python 标准实现下运行下面程序运行打印输出为( )。

第16题
中级
2.0分
判断
从 4 本不同的书中选出 3 本,分别分给甲、乙、丙 3 人,每人至多 1 本,共有 P(4,3) = 24 种不同分法。
第17题
中级
2.0分
判断
对任意正整数 n,二项式 (a+b)ⁿ 的展开式中,按项序从第 0 项起计数,奇数项系数之和等于偶数项系数之和。
第18题
中级
2.0分
判断
若一个连通无向图的最小生成树中存在权值相同的边,则最小生成树一定不唯一。
第19题
中级
2.0分
判断
使用邻接表存储图时,Dijkstra 算法的朴素实现(不使用堆优化)的时间复杂度为 O(V²),其中 V 为结点数。
第20题
中级
2.0分
判断
堆排序是一种稳定的排序算法。
第21题
中级
2.0分
判断
每个大于 1 的整数都可以唯一地分解为若干个质因数的乘积(不考虑因子顺序)。
第22题
中级
2.0分
判断
循环队列通过牺牲一个存储单元,可以区分队空和队满两种状态。
第23题
中级
2.0分
判断
Python 子类继承父类后,父类中定义的公开方法,在子类实例对象上一定可以直接对外访问调用。
第24题
中级
2.0分
判断
使用滚动数组优化动态规划时,通常只能降低空间复杂度,不能降低时间复杂度。
第25题
中级
2.0分
判断
一个三角形的三条边的边长分别为 5、12、13,则它的面积为 30。
第26题
中级
25.0分
编程
生成树计数
时间限制:1.0 s
内存限制:512.0 MB
题目描述
给定一张有 n 个顶点 m 条边的无向连通图 G,顶点依次以 1, 2, …, n 编号。G 有以下特殊的性质:
G 中的每条边至多属于一个简单环。
G 中没有重边与自环。
简单环是指环中顶点互不相同,且不经过重复边的回路。
请你求出 G 的不同生成树的数量。两棵生成树不同,当且仅当存在一条边在其中一棵生成树中出现,而不在另一棵生成树中出现。
由于答案可能很大,你只要求出答案对 998244353 取模的结果。
【输入格式】
第一行,两个正整数 n, m,分别表示 G 的顶点数与边数。 接下来 m 行,每行两个整数 u, v,表示一条连接顶点 u, v 的无向边。
【输出格式】
输出一行,一个整数,表示 G 的不同生成树的数量对 998244353 取模的结果。
输入样例 1:<img src="/static/uploads/images/cbfd02f51619.png" style="max-width:35%;border-radius:6px;margin:8px 0;" /> 输出样例 1:12 输入样例 2:<img src="/static/uploads/images/68f9878a85e0.png" style="max-width:35%;border-radius:6px;margin:8px 0;" /> 输出样例 2:1 数据范围 对于 40% 的测试点,保证 1 ≤ n ≤ 8,1 ≤ m ≤ 10。 对于 60% 的测试点,保证 1 ≤ n ≤ 2000,1 ≤ m ≤ 2000。 对于所有测试点,保证 1 ≤ n ≤ 10⁵,1 ≤ m ≤ 10⁵,1 ≤ uᵢ, vᵢ ≤ n。
第27题
中级
25.0分
编程
末班车
时间限制:5.0 s
内存限制:512.0 MB
题目描述
城市里有 n 个地铁站以及 m 条地铁线路,地铁站依次以 1, 2, …, n 编号。
第 i 条地铁线路(1 ≤ i ≤ m)的列车从地铁站 uᵢ 单向驶向地铁站 vᵢ,最晚发车时间为 lᵢ 分钟,途中行驶需要 tᵢ 分钟。从第 0 分钟到第 lᵢ 分钟,每分钟都会有一班列车从地铁站 uᵢ 发出。第 x 分钟(0 ≤ x ≤ lᵢ)发出的列车会在第 x + tᵢ 分钟到达地铁站 vᵢ。乘坐这班列车的乘客可以换乘第 x + tᵢ 分钟以及之后的所有从地铁站 vᵢ 发出的任意线路的列车。
现在有 q 组询问。第 i 组询问(1 ≤ i ≤ q)给出起点地铁站编号 xᵢ、终点地铁站编号 yᵢ 以及出发时间 sᵢ。你需要判断第 sᵢ 分钟从地铁站 xᵢ 出发是否能够到达地铁站 yᵢ。第 sᵢ 分钟从地铁站 xᵢ 出发意味着你可以乘坐第 sᵢ 分钟以及之后的所有从地铁站 xᵢ 发出的任意线路的列车。
【输入格式】
第一行,三个正整数 n, m, q,分别表示地铁站数量,地铁线路数量,询问数量。 接下来 m 行,每行四个整数 uᵢ, vᵢ, lᵢ, tᵢ,分别表示地铁线路的起点,终点,最晚发车时间,行驶所需时间。 接下来 q 行,每行三个整数 xᵢ, yᵢ, sᵢ,分别表示行程起点,行程终点,出发时间。
【输出格式】
输出共 q 行。对于每组询问,如果第 sᵢ 分钟从地铁站 xᵢ 出发能到达地铁站 yᵢ,则输出一行 Yes,否则输出一行 No。请注意输出区分大小写。
输入样例 1:<img src="/static/uploads/images/496972f77b40.png" style="max-width:35%;border-radius:6px;margin:8px 0;" /> 输出样例 1:<img src="/static/uploads/images/ce37c67566be.png" style="max-width:35%;border-radius:6px;margin:8px 0;" /> 数据范围 对于 40% 的测试点,保证 q ≤ 100。 对于所有测试点,保证: 1 ≤ n ≤ 500 1 ≤ m ≤ 1000 1 ≤ q ≤ 5 × 10⁵ 1 ≤ uᵢ, vᵢ, xᵢ, yᵢ ≤ n 0 ≤ lᵢ, sᵢ ≤ 10⁵ 1 ≤ tᵢ ≤ 10⁴