版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年9月GESP认证C++八级真题(含答案)一、单选题(每题2分,共30分)。1.用数字0、1、2、3、4、5组成没有重复数字的三位数,且该三位数能被3整除,共有()个。A.36B.40C.44D.48答案:B。2.题6个人围成一圈就座,座位没有区分,但区分时针方向,且甲、乙两人必须相邻,则共有()种不同坐法。A.24B.36C.48D.120答案:C。3.有4堆石子,数量分别为1、2、3、4。每次可以合并相邻两堆,合并代价为两堆石子数之和。将所有石子合并成一堆的最小总代价为()。A.17B.19C.20D.23答案:B。4.某二叉树的先序遍历序列为ABDECFG,中序遍历序列为DBEAFCG,则其后序遍历序列为()。A.DEBFGCAB.DBEFGCAC.DEBGFCAD.DEBFCGA答案:A。5.关于快速幂算法,下列说法正确的是()。A.快速幂可以处理任意负指数的情况B.快速幂将指数按二进制拆分,能够把乘法次数从朴素乘幂时的O(b)优化为O(logb)。C.快速幂只能在模数为质数时使用D.快速幂的空间复杂度通常为O(b)答案:B。6.杨辉三角中,第7行第3个数(行、列均从0开始计数)是()。A.21B.35C.42D.56答案:B。7.一个长方形的长是宽的3倍,周长为48,则该长方形的面积为()。A.72B.96C.108D.144答案:C。8.若x+y=7,x-y=1,则x×y的值为()。A.7B.8C.10D.12答案:D。9.关于最小生成树(MST)算法,下列说法正确的是()。A.Prim算法适用于稠密图,Kruskal算法适用于稀疏图。B.Prim算法和Kruskal算法得到的最小生成树边集一定完全相同C.Kruskal算法必须使用邻接矩阵存储图D.Prim算法只能处理有向图答案:A。10.某连通带权无向简单图的边集合为{(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条被选入最小生成树的边是()。A.(1,2,5)B.(2,3,3)C.(3,4,2)D.(4,5,7)答案:B。11.在使用小根堆(优先队列)优化的Dijkstra算法中,堆中每个元素通常存储的是()。A.顶点编号和该顶点当前的最短距离B.边的权值和边的终点C.顶点的入度D.父结点编号和边权答案:A。12.在Floyd算法的经典三重循环for(k)for(i)for(j)中,最外层变量k表示()。A.当前允许作为中间顶点的最大编号(即只允许编号不超过k的顶点作为中间点)B.当前起点C.当前终点D.当前最短路径的长度答案:A。13.下列常见复杂度量级,按渐近增长速度从慢到快排列,正确的是()。A.O(n²),O(nlogn),O(n),O(logn)B.O(logn),O(n),O(n²),O(nlogn)C.O(logn),O(n),O(nlogn),O(n²)D.O(nlogn),O(logn),O(n),O(n²)答案:C。14.对长度为n的数组使用差分数组支持m次区间加操作,最后通过一次前缀和还原每个位置的最终值,整个过程的渐进时间复杂度为()。A.O(mn)B.O((n+m)logn)C.O(nlogm)D.O(n+m)答案:D。15.下列程序的输出结果为()。#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}~A(){cout<<"~A";}};classB:publicA{public:B(){cout<<"B";}~B(){cout<<"~B";}};intmain(){Bb;return0;}A.BA~A~BB.BA~B~AC.AB~A~BD.AB~B~A答案:D。二、判断题(每题2分,共20分)。16.从4本不同的书中选出3本,分别分给甲、乙、丙3人,每人至多1本,共有P(4,3)=24种不同分法。()。答案:正确。17.对任意正整数n,二项式(a+b)n的展开式中,按项序从第0项起计数,奇数项系数之和等于偶数项系数之和。()。答案:正确。18.若一个连通无向图的最小生成树中存在权值相同的边,则最小生成树一定不唯一。()。答案:错误。19.使用邻接表存储图时,Dijkstra算法的朴素实现(不使用堆优化)的时间复杂度为O(V2),其中V为结点数。()。答案:正确。20.堆排序是一种稳定的排序算法。()。答案:错误。21.每个大于1的整数都可以唯一地分解为若干个质因数的乘积(不考虑因子顺序)。()。答案:正确。22.循环队列通过牺牲一个存储单元,可以区分队空和队满两种状态。()。答案:正确。23.在C++语言的私有继承中,基类的public成员在派生类中仍为public成员。()。答案:错误。24.使用滚动数组优化动态规划时,通常只能降低空间复杂度,不能降低时间复杂度。()。答案:正确。25.一个三角形的三条边的边长分别为5、12、13,则它的面积为30。()。答案:正确。三、编程题(每题25分,共50分)。26.试题名称:生成树计数。时间限制:1.0s。内存限制:512.0MB。题目描述:给定一张有n个顶点m条边的无向连通图G,顶点依次以1,2,…,n编号。G有以下特殊的性质:(1)G中的每条边至多属于一个简单环。(2)G中没有重边与自环。简单环是指环中顶点互不相同,且不经过重复边的回路。请你求出G的不同生成树的数量。两棵生成树不同,当且仅当存在一条边在其中一棵生成树中出现,而不在另一棵生成树中出现。由于答案可能很大,你只要求出答案对998244353取模的结果。输入格式:第一行,两个正整数n,m,分别表示G的顶点数与边数。接下来m行,每行两个整数ui,vi,表示一条连接顶点ui,vi的无向边。输出格式:输出一行,一个整数,表示G的不同生成树的数量对998244353取模的结果。输入样例1:781223313445566774输出样例1:12输入样例2:5412132425输出样例2:1数据范围:对于40%的测试点,保证1≤n≤8,1≤m≤10。对于60%的测试点,保证1≤n≤2000,1≤m≤2000。对于所有测试点,保证1≤n≤105,1≤m≤105,1≤ui,vi≤n。参考程序:#include<cstdio>#include<algorithm>usingnamespacestd;constintN=1e5+5;constintE=N<<1;constintmod=998244353;intn,m;inth[N],to[E],nx[E],et;intd[N];intans;voidae(intu,intv){to[++et]=v;nx[et]=h[u];h[u]=et;}voiddfs(intu,intp=0){d[u]=d[p]+1;for(inti=h[u];i;i=nx[i]){intv=to[i];if(v==p)continue;if(!d[v])dfs(v,u);if(d[v]<d[u])ans=1ll*ans*(d[u]-d[v]+1)%mod;}}intmain(){scanf("%d%d",&n,&m);for(inti=1;i<=m;i++){intu,v;scanf("%d%d",&u,&v);ae(u,v);ae(v,u);}ans=1;dfs(1);printf("%d\n",ans);return0;}27.试题名称:末班车。时间限制:1.0s。内存限制:512.0MB。题目描述:城市里有n个地铁站以及m条地铁线路,地铁站依次以1,2,…,n编号。第i条地铁线路(1≤i≤m)的列车从地铁站ui单向驶向地铁站vi,最晚发车时间为第li分钟,途中行驶需要ti分钟。从第0分钟到第li分钟,每分钟都会有一班列车从地铁站ui发出。第x分钟(0≤x≤li)发出的列车会在第x+ti分钟到达地铁站vi,乘坐这班列车的乘客可以换乘第x+ti分钟以及之后的所有从地铁站vi发出的任意线路的列车。现在有q组询问。第i组询问(1≤i≤q)给出起点地铁站编号xi,终点地铁站编号yi以及出发时间si,你需要判断第si分钟从地铁站xi出发是否能到达地铁站yi。第si分钟从地铁站xi出发意味着你可以乘坐第si分钟以及之后的所有从地铁站xi发出的任意线路的列车。输入格式:第一行,三个正整数n,m,q,分别表示地铁站数量,地铁线路数量,询问数量。接下来m行,每行四个整数ui,vi,li,ti,分别表示地铁线路的起点,终点,最晚发车时间,行驶所需时间。接下来q行,每行三个整数xi,yi,si,分别表示行程起点,行程终点,出发时间。输出格式:输出共q行。对于每组询问,如果第si分钟从地铁站xi出发能到达地铁站yi则输出一行Yes,否则输出一行No。请注意输出区分大小写。输入样例:3451233235231411306132212213322323输出样例:YesYesNoYesNo数据范围:对于40%的测试点,保证q≤100。对于所有测试点,保证:参考程序:#include<cstdio>#include<algorithm>#include<queue>usingnamespacestd;constintN=505;constintE=1005;constintoo=1e9;intn,m;inth[N],to[E],nx[E],l[E],t[E];intd[N][N];priority_queue<pair<int,int>>q;voidcalc(intu,intd[]){for(inti=1;i<=n;i++)d[i]=-oo;d[u]=oo;q.push(make_pair(d[u],u));while(!q.empty()){pair<int,int>p=q.top();q.pop();if(d[p.second]!=p.first)continue;intu=p.second;for(inti=h[u];i;i=nx[i]){intv=to[i];intw=min(d[u]-t[i],l[i]);if(w<0)continue;if(w>d[v]){d[v]=w;q.push(make_pair(d[v],v));}}}}intmain(){intq;scanf("%d%d%d",&n,&m,&q);for(inti=1;i<=m;i++){intu,v;scanf("%d%d%d%d",&u,&v,&l[i],&t[i]);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《爱莲说说课》课件
- 2026-2027年浙江省人教版高三物理第9单元量子力学测试卷
- 医疗保险与医疗费用控制
- 《空调节能技术》课件
- 多旋翼无人机技术基础(第2版)课件 第3章DIY 四旋翼无人机组装
- 幼儿园课件垃圾分类
- 2026 年国庆节长假反欺凌警示教育课件
- 《篮球基本技术》课件
- 数据库应用程序开发
- 吉祥航空空乘民航安检违禁物品模拟试卷及答案
- 高中军训军事理论课件
- bot项目建设合同范本
- 项目四流量检测仪表任务7认识靶式流量计26课件
- 质量管理五大工具培训教材
- 肩袖损伤中西医结合诊疗指南
- 血流导向装置治疗动脉瘤
- 肝脓肿术后的护理查房
- 教师系列任现职以来教学工作情况证明材料
- GB/T 19183.1-2024电气和电子设备机械结构户外机壳第1部分:设计导则
- 绿网苫盖合同范例
- TD-T 1048-2016耕作层土壤剥离利用技术规范
评论
0/150
提交评论