2024年3月GESP等级认证Python编程八级真题及答案

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

C

D

B

A

B

C

C

B

C

D

A

A

B

D

C

第 题  下列代码中 ,⽤到的算法是什么算法 ,去掉存储的空间 ,算法本⾝⽤到的空间复杂度是多少  ()

  A.  二分法 ,  O(log2N)

  B.  二分法 , O(N)

  C.  折半查找 ,  O(1)

  D.  折半查找   O(N log2N)

第  ⽆向图的临接矩阵存储⽅法中 ,下列描述正确的是  

  A.  对角矩阵

  B.  稀疏矩阵

  C.  非对称矩阵

  D.  对称矩阵

第  下列代码依次输⼊10,3,2 ,结果是  

来源:6547网 http://www.6547.cn/doc/msitz6u6rp 

  A.  23

  B.  120

  C.  16

  D.  155

第  ⼀个等边五边形 ,每个顶点上有⼀个蚂蚁 ,蚂蚁沿着五边形的边严格匀速⾏⾛ ,⽅向随机 请问 ,开始⾛以  ,蚂蚁两两不相碰的概率是多少  

  A.  1/16

  B.  1/4

  C.  1/32

  D.  1/8

第  ⼀根长度为1的⼩⽊棒 ,随机的折成三段 ,请问这三段能够组成⼀个三角形的概率是多少   

  A.  1/3

  B.  1/4

  C.  1/8

  D.  1/2

第  有北京 ,雄安 ,天津三个城市, 同样两个城市之间来回票价⼀样 。请问⽕车售票部门需要准备⼏种车票 ,⼏ 种票价  

  A.  3,3

  B.  6,6

  C.  6,3

  D.  3,6

第  对于如下图的⽆向图 ,在⽤Prim算法以节点F作为起点⽣成最⼩树的过程中 ,哪个选项不是产⽣最⼩树的中 间状态   

A.

B.

C.

D.

第  对于⼀棵是完全⼆叉树的排序⼆叉树 ,其平均搜索的时间复杂度为() 

 A0 )

0 B0(log n)

0 C. 0()

 D. 0(n2)

第  关于快速幂 ,下列说法错误的是  

  A. 使⽤了倍增思想

 B. 每⼀步都把指数分成两半 ,⽽相应的底数做平⽅运算

  C. 时间复杂度为 。(NlogN)

0 D. 可以⽤快速幂⽅法计算斐波那契数列的第 N 

第 10 题  下⾯实现杨辉三角形的程序中 ,横线处填写正确的是  

A.  z = triangles(x, y-1) + triangles(x, y)

B.  z = triangles(x-1, y+1) + triangles(x-1, y-1)

C.   z = triangles(x-1, y-1) + triangles(x, y)

D.  z = triangles(x-1, y-1) + triangles(x-1, y)

第 11 题  设有编号为1 2 3 4 5的五个球和编号为1 2 3 4 5的盒⼦ ,现将这5个球投⼊5个盒⼦要求每个盒 ⼦放⼀个球 ,并且恰好有两个球的号码与盒⼦号码相同, 问有多少种不同的⽅法  

A.  20

B.  10

C.  12

D.  24

第 12 题  1名⽼师和4名获奖同学排成⼀排照相留 ,⽼师不站两端的排法下列所列式⼦正确的是() 

口  A. C31A44

  BA31A44

0  C. C31C44

0  D. A31C44

第 13 题  关于赋权图中 ,从某⼀个点出发 寻找最短路径的算法Dijkstra ,下列说法中错误的是  

  A. 算法解决了赋权有向图或者⽆向图的单源最短路径问题

  B. 算法最终得到⼀个最短路径树

  C. 常⽤于路由算法或者作为其他图算法的⼀个⼦模块

  D. 算法采⽤的是⼀种贪⼼的策略

第 14 题  关于图的存储⽅法中 ,下列说法错误的是  

  A. 图的存储结构主要分为:邻接矩阵和邻接表

  B. 图的邻接矩阵存储⽅式是⽤两个数组来表⽰图:⼀个⼀维数组存储图中顶点信息 ,⼀个⼆维数组(邻接矩 阵)存储图中的边或弧的信息。

  C. 对于边数相对顶点较少的图 ,邻接矩阵结构存在对存储空间的极⼤浪费

  D. 如果图中边的数⽬远远⼤于n的平⽅称作稀疏图 ,这是⽤邻接表表⽰⽐⽤邻接矩阵表⽰节省空间

第 15  Dijkstra算法中 ,定义S集合是已求出最短路径的节点集合 ,对于下图中的图 Dijkstra算法的中间形成的S  ,错误的是  

  A.  S={0(3)}

  B.  S={0(3),2(6)}

  C.  S={0(3),2(6),1(5)}

  D.  S={0(3),2(6),1(8)}

2      2  20

    1    2    3    4    5    6    7    8    9    10

答案                          

第 题  线性表可以是空表 ,树可以是空树, 图也可以是空。

第  在具有  个顶点、 条边的⽆向图中, ⽆向图的全部顶点的度的和等于边数的 倍。

第 题  图的任意⼏个点 ,⼏个边都可以组成这个图的⼦图。

第  在具有  个顶点、 条边的有向图中 ,⼊+出度的和是 

第 题  当⼀棵排序⼆叉树退化为单⽀⼆叉树后 ,其平均⽐较次数是  

第 题  不算数据的存储 ,插⼊排序算法的空间复杂度为 

第 题  图的存储⽅式主要有两种:邻接表和邻接矩阵。

第  对于边数相对顶点较少的图 ,使⽤邻接矩阵来存储更好。

第  排列问题与顺序有关 ,组合问题与顺序⽆关。

第 10 题  ⽤分治法可以优化等⽐数列的前  项求和的算法。

3     编程题  (每题 25 分  ,共 50 分)                                                                    

3.1     编程题 1                                                                                                                                             

  试题名称:公倍数问题

3.1.1     问题描述                                                                                                                                 

⼩ 写了⼀个 N X M 的矩阵 A ,我们看不到这个矩阵 ,但我们可以知道 ,其中第 i ⾏第j列的元素 Ai,j 是 i  j 的 公倍数  。现在有 个⼩朋友 ,其中第 个⼩朋友想知道 ,矩阵 中最多有多少个元 素可以是 k  。请你帮助这些⼩朋友求解。

注意:每位⼩朋友的答案互不相关 ,例如 ,有些位置既可能是  ,⼜可能是  ,则它同可以时满⾜  两名⼩朋友的 要求。

⽅便起见 ,你只需要输出Kk=1 k × ansk 即可 ,其中 ansk 表⽰第 k 名⼩朋友感兴趣的答案。

3.1.2     输入描述                                                                                                                               

第⼀⾏三个正整数N,M, K

3.1.3     输出描述                                                                                                                               

输出⼀⾏ 即 Kk=1 k × ansk 

请注意 ,这个数可能很⼤ ,使⽤ C++语⾔的选⼿请酌情使⽤  long long 等数据类型存储答案。

3.1.4     特别提醒                                                                                                                                 

在常规程序中 ,输⼊ 、输出时提供提⽰是好习惯 。但在本场考试中, 由于系统限定 ,请不要在输⼊ 、输出中附带任 何提⽰信息。

3.1.5     样例输入 1                                                                                                                                                       

3.1.6     样例输出 1

3.1.7     样例解释 1

只有 A1 , 1  可以是 1 ,其余都不⾏。

A1 A12  A2   A2,2  都可以是 2 ⽽其余不⾏

因此答案是 1  ×  1      2  × 4  9

3.1.8     样例输入 2

3.1.9     样例输出 2

3.1.10     数据规模

对于 30 的测试点 保证 NM, K     10

对于 60 的测试点 保证 NM, K  500

对于 100 的测试点 保证 N 105 K

3.1.11     参考程序

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

def count_divisors(limit, num):

s = [0] * (num + 1)

for i in range(1, limit + 1):

for j in range(i, num + 1, i):

s[j] += 1

return s

def main():

NMK = map(int, input().split())

s_N = count_divisors(N, 10 ** 6)

s_M = count_divisors(M, 10 ** 6)

result = 0

for k in range(1K + 1):

result += k * s_N[k] * s_M[k]

print(result)

if __name__ == "__main__":

main()

3.2     编程题 2

  试题名称:接⽵竿

3.2.1     题面描述

⼩杨同学想⽤卡牌玩⼀种叫做接⽵竿 的游戏。

游戏规则是:每张牌上有⼀个点数  ,将给定的牌依次放⼊⼀列牌的末端 。若放⼊之前这列牌中已有与这张牌点数相 同的牌 ,则⼩杨同学会将这张牌和点数相同的牌之间的所有牌全部取出队列(包括这两张牌本⾝) 

⼩杨同学现在有⼀个长度为  的卡牌序列 A ,其中每张牌的点数为 Ai  。⼩杨同学有 次询问 。第    ( )  询问时 ,⼩杨同学会给出 iTi ,⼩杨同学想知道如果⽤下标在 [li  Ti的所有卡牌按照下标顺序玩接⽵  竿 的游戏 ,最后队列中剩余的牌数。

3.2.2     输入格式

第一行包含一个正整数 T ,表示测试数据组数。

对于每组测试数据 ,第一行包含一个正整数 ,表示卡牌序列 A 的长度。

第二行包含  个正整数 A1  A2 An ,表示卡牌的点数 A

第三行包含一个正整数 q ,表示询问次数。

接下来  ,每行两个正整数 i  Ti ,表示一组询问。

3.2.3     输出格式

对于每组数据 ,输出  。第  输出一个非负整数 ,表示第 i 次询问的答案。

3.2.4     样例 1

1

2

3

4

5

6

7

8

1

6

1 2 2 3 1 3

4

1 3

1 6

1 5

5 6

1

2

3

4

1

1

0

2

3.2.5     样例解释

对于第一次询问 ,小杨同学会按照 1 , 2  2  的顺序放置卡牌 ,在放置最后一张卡牌时 ,两张点数为 2  的卡牌会被收 走, 因此最后队列中只剩余一张点数为  的卡牌。

对于第二次询问, 队列变化情况为:

{}  {1}  {1 , 2}  {1 , 2 , 2}  {1}  {1 , 3}  {1 , 3, 1}  {}  {3}  因此最后队列中只剩余张点数为 3 的卡 牌。

3.2.6     数据范围

子任务编号   数据点占比    T          n                  q           max Ai              特殊条件

1                     30           

5        

100            13

2                     30           

5   1

5  ×  104  ≤  1

5 ×  104      13

所有询问的右端点等于n

3                     40           

5    1

5  ×  104  ≤  1

5 ×  104      13

对于全部数据 保证有 1   T  5 1   n   1 . 5  ×  104   

3.2.7     参考程序

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

n = int(input())

= int(math.log(n, 2)) + 1

= list(map(int, input().split()))

pos = {}

nxt = [[n for i in range(+ 1)] for j in range(n)]

for i in range(n - 1, -1, -1):

if not (A[i] in pos):

nxt[i][0] = n

else:

nxt[i][0= pos[A[i]]

pos[A[i]] = i

for i in range(n - 1, -1, -1):

for j in range(1, m + 1):

if nxt[i][j - 1+ 1 < n:

nxt[i][j= nxt[nxt[i][j - 1+ 1][j - 1]

Q = int(input())

for q in range(Q):

lr = map(int, input().split())

l, r = l - 1, r - 1

x, ans = l, 0

while x <= r:

while x <= r and nxt[x][0] > r:

x, ans x + 1, ans + 1

if x > r:

break

for i in range(m, -1, -1):

if nxt[x][i] <= r:

x = nxt[x][i]

break

x += 1

print(ans)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/750579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 如何使用Lambda表达式实现递归和循环的替代品

java 如何使用Lambda表达式实现递归和循环的替代品 在Java中&#xff0c;Lambda表达式通常用于实现函数式接口&#xff0c;即只有一个抽象方法的接口。然而&#xff0c;Lambda表达式本身并不直接支持递归或循环。递归和循环是编程中的基本控制结构&#xff0c;通常通过方法调用…

Microsoft Word 符号 / 特殊符号

Microsoft Word 符号 / 特殊符号 1. 插入 -> 符号 -> 其他符号 -> Wingdings 2References 1. 插入 -> 符号 -> 其他符号 -> Wingdings 2 ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

创新指南|制药行业如何拥抱生成式AI在新药发现与开发中突破获益

生成式AI在药物发现中的应用可加速药物研发过程&#xff0c;并可能降低成本。通过利用GenAI&#xff0c;制药公司能在早期药物发现和开发中实现更快的成果&#xff0c;这包括从目标识别、验证&#xff0c;到优化的多个环节。 AI有潜力在药物筛选和优先排序、目标识别及验证、药…

Jmeter+Ant 接口自动化环境配置指南

一 、Jmeter安装与配置 https://blog.csdn.net/tester_sc/article/details/80746405 注&#xff1a;Jmeter5.0的环境变量配置与4.0或历往老版本有部分小差异&#xff0c;笔者用的Jmeter 5.0 二 、Ant的安装与配置 # Ant下载地址(下载到指定目录后&#xff0c;进行解压到当前…

python 爬取人民新闻

基础信息获取&#xff1a; 要闻url&#xff1a;https://www.gov.cn/yaowen/liebiao/home.htm 下一页的url&#xff1a;https://www.gov.cn/yaowen/liebiao/home_1.htm 基础代码&#xff1a; import re import openpyxl import requests from lxml import etree import osdef …

leetcode电话号码的字母组合

自己没搞出来&#xff0c;只能借鉴别人实现&#xff0c;自己再实现了 递归解法 public class LetterCombinations {List<String> strings new ArrayList<>();StringBuilder builder new StringBuilder();public List<String> letterCombinations(String di…

JavaWeb笔记 --- 四、HTMlCSS

四、HTMl&CSS HTML入门 基本标签 图片、音频、视频标签 尺寸单位 px&#xff1a;像素 百分比 超链接标签 列表标签 表格标签 布局标签 表单标签 CSS导入方式 CSS选择器

YOLOv9改进策略:注意力机制 | 归一化的注意力模块(NAM)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; NAM作为一种高效且轻量级的注意力机制。采用了CBAM的模块集成并重新设计了通道和空间注意子模块。 yolov9-c-NAMAttention summary: 965 layers, 51000614 parameters, 51000582 gradients, 238.9 GFLOPs 改…

重新认识BIO、NIO、IO多路复用、Select、Poll、Epollo它们之间的关系

目录 一、背景 二、名词理解 &#xff08;1&#xff09;BIO &#xff08;2&#xff09;NIO &#xff08;3&#xff09;IO多路复用 &#xff08;4&#xff09;Select、Poll、Epollo 三、他们之间的关系总结 一、背景 最近又在学习网络IO相关知识&#xff0c;对我们常说的…

linuxOPS基础_linux命令合集

uname查看操作系统信息 命令&#xff1a;uname [参数] 作用&#xff1a;获取计算机操作系统相关信息 参数&#xff1a;-a&#xff0c;选项-a代表all&#xff0c;表示获取全部的系统信息&#xff08;类型、全部主机名、内核版本、发布时间、开源计划&#xff09; 用法一&…

19. UE5 RPG使用GameplayEffect的Attribute Based Modifiers

前几篇文章我也说了GE的基础使用&#xff0c;但是&#xff0c;对一些属性的应用没有述说&#xff0c;后续&#xff0c;我将一点一点的将它们如何使用书写下来。 这一篇&#xff0c;主要就讲解一下Attribute Based Modifiers使用&#xff0c;先说一下它的应用场景&#xff0c;一…

9.用FFmpeg测试H.264文件的解码时间

1. Essence of Method 要测试对H.264文件的解码时间&#xff0c;可以使用FFmpeg进行操作。FFmpeg是一个开源的多媒体处理工具&#xff0c;可以用来处理视频和音频文件&#xff0c;包括解码H.264文件。以下是使用FFmpeg的命令行来测试解码时间的方法&#xff1a; ffmpeg -i in…

centos7网络命令:ping、dig、nsloopup、tcpdump

目录 一、ping1、命令参数&#xff1a;2、示例-将当前的信息打印到一个文件中3、示例-结束进程 二、dig1、安装2、语法格式选项说明 3、示例4、示例-将当前的信息打印到一个文件中 三、nslookup1、安装2、语法格式选项说明 3、示例 四、tcpdump抓包1、安装2、语法格式&#xff…

说说JVM的垃圾回收机制

简介 垃圾回收机制英文为Garbage Collection, 所以我们常常称之为GC。那么为什么我们需要垃圾回收机制呢&#xff1f;如果大家有了解过Java虚拟机运行时区域的组成(JVM运行时存在&#xff0c;本地方法栈&#xff0c;虚拟机方法栈&#xff0c;程序计数器&#xff0c;堆&#xf…

MLC-LLM框架的安卓应用部署实战

这几天根据官网教程把MLC-LLM在安卓端部署了一下&#xff0c;中间遇到了不少问题&#xff0c;也搜集了不少解决方案&#xff0c;同时也结合了别人的实践经历&#xff0c;现分享总结如下。 感谢博主tao_spyker的文章基于MLC LLM将Llama2-7B模型部署至Android手机运行&#xff0c…

程序人生——Java异常使用建议

目录 引出异常建议110&#xff1a;提倡异常封装&#xff1b;建议111&#xff1a;采用异常链传递异常 建议112&#xff1a;受检异常尽可能转化为非受检异常建议113&#xff1a;不要在finally块中处理返回值 建议114&#xff1a;不要在构造函数中抛异常建议115&#xff1a;使用Th…

【Exception系列】SocketTimeoutException

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

学习vue3第五节(reactive 及其相关)

1、定义 reactive() 创建一个响应式代理对象&#xff0c;不同于ref()可以创建任意类型的数据&#xff0c;而reactive()只能是对象&#xff0c;会响应式的深层次解包任何属性&#xff0c;将其标注为响应式 响应式是基于ES6的proxy实现的代理对象&#xff0c;该proxy对象与原对象…

Android FrameWork基础之Makefile

Makefile入门教程&#xff08;结合Android源码编译用例&#xff09; 一、引言 Makefile是用于自动化构建项目的工具&#xff0c;尤其在Android源码编译中扮演着至关重要的角色。Makefile文件包含了构建过程中所需的各种规则、依赖关系和命令。通过Makefile&#xff0c;我们可…

单片机第四季-第一课:RTOS

1&#xff0c;RTOS来龙去脉 操作系统是什么&#xff1f; 以人类社会类比&#xff0c;小公司三四个人都是干活的&#xff0c;大公司有几万人其中有几千人从事管理工作&#xff0c;他们的工作是让其他人的干活效率更高。 51单片机为什么没有操作系统&#xff0c;因为51的性能太…