2024年3月CCF—GESP(Python八级)编程能力等级认证试卷
剩余时间 --:--:--
单选题 共 15 题
1.

一根长度为1的小木棒,随机的折成三段,请问这三段能够组成一个三角形的概率是多少?(   )。

2.

有北京,雄安,天津三个城市,同样两个城市之间来回票价一样。请问火车售票部门需要准备几种车票,几种票价(   )。

3.

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


4.

无向图的临接矩阵存储方法中,下列描述正确的是(   )。

5.

1名老师和4名获奖同学排成一排照相留念,老师不站两端的排法下列所列式子正确的是(   )。

6.

关于快速幂,下列说法错误的是(   )。

7.

关于图的存储方法中,下列说法错误的是(   )。

8.

下面实现杨辉三角形的程序中,横线处填写正确的是(   )。

9.

对于如下图的无向图,在用Prim算法以节点F作为起点生成最小树的过程中,哪个选项不是产生最小树的中间状态?(   )。

10.

关于赋权图中,从某一个点出发,寻找最短路径的算法Dijkstra,下列说法中错误的是(   )。

11.

一个等边五边形,每个顶点上有一个蚂蚁,蚂蚁沿着五边形的边严格匀速行走,方向随机,请问,开始走以后,蚂蚁两两不相碰的概率是多少(   )。

12.

设有编号为1,2,3,4,5的五个球和编号为1,2,3,4,5的盒子,现将这5个球投入5个盒子要求每个盒子放一个球,并且恰好有两个球的号码与盒子号码相同,问有多少种不同的方法(   )。

13.

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

14.

下列代码依次输入10,3,2后,结果是(   )。

15.

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

判断题 共 10 题
1.

当一棵排序二叉树退化为单支二叉树后,其平均比较次数是O(N)。

2.

在具有n个顶点、e条边的有向图中,入度+出度的和是2e。

3.

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

4.

图的任意几个点,几个边都可以组成这个图的子图。

5.

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

6.

在具有n个顶点、e条边的无向图中, 无向图的全部顶点的度的和等于边数的 2 倍。

7.

用分治法可以优化等比数列的前n项求和的算法。

8.

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

9.

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

10.

不算数据的存储,插入排序算法的空间复杂度为O(1)。

编程题 共 2 题
1.

接竹竿

题面描述

小杨同学想用卡牌玩一种叫做“接竹竿”的游戏。

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

小杨同学现在有一个长度为n的卡牌序列A,其中每张牌的点数为Ai(1≤i≤n)。小杨同学有q次询问。第i次(1≤i≤q)询问时,小杨同学会给出li,ri,小杨同学想知道如果用下标在[li,ri]的所有卡牌按照下标顺序玩“接竹竿”的游戏,最后队列中剩余的牌数。

输入格式

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

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

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

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

接下来q行,每行两个正整数li,ri,表示一组询问。

输出格式

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


样例输入

1
6
1 2 2 3 1 3
4
1 3
1 6
1 5
5 6

样例输出

1
1
0
2


样例解释

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

对于第二次询问,队列变化情况为:{}-->{1}-->{1,2}-->{1,2,2}-->{1}-->{1,3}-->{1,3,1}-->{}-->{3}。因此最后队列中只剩余一张点数为3的卡牌。

数据范围

对于全部数据,保证有1≤T≤5,1≤n≤1.5×104,1≤q≤1.5×104,1≤Ai≤13 。

2.

公倍数问题

问题描述

小 A 写了一个N×M的矩阵A,我们看不到这个矩阵,但我们可以知道,其中第i行第j列的元素Aij是i和j的公倍数(i=1,...,N,j=1,...,M)。现在有K个小朋友,其中第k个小朋友想知道,矩阵A中最多有多少个元素可以是k(k=1,2,...,K)。请你帮助这些小朋友求解。

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

方便起见,你只需要输出即可,其中ansk表示第k名小朋友感兴趣的答案。

输入描述

第一行三个正整数N,M,K。

输出描述

输出一行,即

请注意,这个数可能很大,使用 C++ 语言的选手请酌情使用 long long 等数据类型存储答案。

特别提醒

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

样例输入 1

2 5 2

样例输出 1

9

样例解释 1

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

A1,1,A1,2,A2,1,A2,2都可以是2,而其余不行。

因此答案是1×1+2×4=9。

样例输入 2

100 100 100

样例输出 2

185233

数据规模

对于30的测试点,保证N,M,K≤10;

对于60的测试点,保证N,M,K≤500;

对于100的测试点,保证N,M<105,K<106。

C++ 编辑器
输入
输出