试卷总分:100分
选择题 15题 30分
判断题 10题 20分
编程题 2题 50分
用数字0、1、2、3、4、5组成没有重复数字的三位数,且该三位数能被3整除,共有()个。
6个人围成一圈就座,座位没有区分,但区分时针方向,且甲、乙两人必须相邻,则共有()种不同坐法。
有4堆石子,数量分别为1、2、3、4。每次可以合并相邻两堆,合并代价为两堆石子数之和。将所有石子合并成一堆的最小总代价为()。
某二叉树的先序遍历序列为A B D E C F G,中序遍历序列为D B E A F C G,则其后序遍历序列为()。
关于快速幂算法,下列说法正确的是()。
杨辉三角中,第7行第3个数(行、列均从0开始计数)是()。
一个长方形的长是宽的3倍,周长为48,则该长方形的面积为()。
若x+y=7,x-y=1,则x*y的值为()。
关于最小生成树(MST)算法,下列说法正确的是()。
某连通带权无向简单图的边集合为{(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条被选入最小生成树的边是( )。
在使用小根堆(优先队列)优化的Dijkstra 算法中,堆中每个元素通常存储的是()。
在Floyd 算法的经典三重循环for (k) for (i) for (j) 中,最外层变量k 表示()。
下列常见复杂度量级,按渐近增长速度从慢到快排列,正确的是()。
对长度为n的数组使用差分数组支持m次区间加操作,最后通过一次前缀和还原每个位置的最终值,整个过程的渐进时间复杂度为()。
下列程序的输出结果为()。
#include <iostream> using namespace std ; class A { public: A () { cout << "A "; } ~A () { cout << "~A "; } }; class B : public A { public: B () { cout << "B "; } ~B () { cout << "~B "; } }; int main() { B b ; return 0 ; }
从4本不同的书中选出3本,分别分给甲、乙、丙3人,每人至多1本,共有P(4,3)=24种不同分法。
对任意正整数n,二项式(a+b)n的展开式中,按项序从第0项起计数,奇数项系数之和等于偶数项系数之和。
若一个连通无向图的最小生成树中存在权值相同的边,则最小生成树一定不唯一。
使用邻接表存储图时,Dijkstra 算法的朴素实现(不使用堆优化)的时间复杂度为O(V2),其中V为结点数。
堆排序是一种稳定的排序算法。
每个大于的整数都可以唯一地分解为若干个质因数的乘积(不考虑因子顺序)。
循环队列通过牺牲一个存储单元,可以区分队空和队满两种状态。
在C++语言的私有继承中,基类的public 成员在派生类中仍为public 成员。
使用滚动数组优化动态规划时,通常只能降低空间复杂度,不能降低时间复杂度。
一个三角形的三条边的边长分别为5、12、13,则它的面积为30。
试题名称:生成树计数
时间限制:1.0 s
内存限制:512.0 MB
试题名称:末班车