下面关于二叉树的说法正确的是( )。
假设一个算法时间复杂度的递推式是
,和T(0) = 1 ,那么这个算法的时间复杂度是( )。
一棵深度为6(根节点深度为1)的完全二叉树,节点总数最少有( )。
下面程序中,函数 query 的时间复杂度是( )。
#include <iostream>
int query(int n, int *a, int x) {
int l = 0, r = n;
while (l < r) {
int mid = l + (r - l) / 2;
if (a[mid] >= x)
r = mid;
else
l = mid + 1;
}
if (l == n)
return -1;
return l;
}
int main() {
int n = 10;
int x = 3;
int num[] = {1, 2, 2, 3, 3, 4, 5, 5, 6, 7};
std::cout << query(n, num, x) << "\n";
return 0;
}下面关于C++中形参、实参和定义域的说法中,正确的一项是( )。
现有一个地址区间为0-10的哈希表,当出现冲突情况,会往后找第一个空的地址存储(到10冲突了就从开始往后),现在要依次存储(1,3,5,7,9),哈希函数为h(x)=(x^2+x)mod11。。其中 存储在哈希表哪个地址中 ( )。
下面哪一个可能是下图的深度优先遍历序列( )。2025.12-7

对于如下二叉树,下面关于访问的顺序说法错误的是( )。2025.12-7

有5个字符,它们出现的次数分别为2次、2次、3次、3次、5次。现在要用哈夫曼编码的方式来为这些字符进行编码,最小加权路径长度WPL(每个字符的出现次数 它的编码长度,再把每个字符结果加起来)的值为( )。2025.12-7
一个简单无向图G有36条边,且每个顶点的度数都为4,则图 的顶点个数为( )。
已知三个序列: s1 = {3, 1, 8, 2, 5, 6, 7, 4} , s2 = {1, 5, 1, 8, 6, 4, 7, 5, 6}, s3 = {1, 8, 3, 5, 7, 6, 2, 4} 。以下哪个序列是它们的最长公共子序列( )。
下面这个有向图的强连通分量的个数是( )。

在0/1背包问题中,给定一组物品,每个物品有一个重量和价值,背包的容量有限。假设背包的最大容量为W,物品的数量为n ,其中第 个物品的重量为W[i],价值为 V[i]。以下关于0/1背包问题的描述,正确的是( )。
下面程序的运行结果为( )。
#include <iostream>
int query(int n, int *a, int x) {
int l = 0, r = n;
while (l < r) {
int mid = l + (r - l) / 2;
if (a[mid] >= x)
r = mid;
else
l = mid + 1;
}
if (l == n)
return -1;
return l;
}
int main() {
int n = 10;
int x = 3;
int num[] = {1, 2, 2, 3, 3, 4, 5, 5, 6, 7};
std::cout << query(n, num, x) << "\n";
return 0;
}下面程序的运行结果为( )。
#include <iostream>
using namespace std;
int f(int n) {
if (n <= 2) return n * 2;
return f(n - 1) + f(n - 2);
}
int main() {
cout << f(5) << endl;
return 0;
}选择排序是一种不稳定的排序算法,而冒泡排序是一种稳定的排序算法。2025.12-7
C++语言中,表达式 3 ^ 2 的结果类型为 int ,值为 9 。
使用 strcmp("10", "9") 比较两个字符串,返回值大于0,说明 "10" 比 "9" 大。
在图像处理或游戏开发中,泛洪(flood fill)算法既可以用BFS实现,也可以用DFS实现。2025.12-7
使用 cmath 头文件中的正弦函数,表达式 sin(90) 的结果类型为 double ,值约为 1.0 。
在无向图中,所有顶点的度数之和等于边数的两倍。2025.12-7
求两个长度为 序列的最长公共子序列(LCS)长度时,可以使用滚动数组将空间复杂度从优化到。
使用邻接矩阵存储一个有 个顶点、 条边的图,对该图进行一次完整的BFS遍历,时间复杂度为。
使用链地址法处理冲突的哈希表,当所有元素都映射到同一个槽位时,查找操作的最坏时间复杂度为O(n),其中n为元素个数。
一个包含V个顶点的连通无向图,其任何一棵生成树都恰好包含 V-1条边。
城市规划
题目描述
A 国有n座城市,城市之间由m条双向道路连接,任意一座城市均可经过若干条双向道路到达另一座城市。城市依次以1,2....,n编号。第i(1≤i≤m)条双向道路连接城市ui与城市vi。
对于城市u和城市v而言,它们之间的连通度d(u,v)定义为从城市u出发到达城市 所需经过的双向道路的最少条数。由于道路是双向的,可以知道连通度满足d(u,v)=d(v,u),特殊地有d(u,u)=0。
现在 A 国正在规划城市建设方案。城市u的建设难度为它到其它城市的最大连通度。请你求出建设难度最小的城市,如果有多个满足条件的城市,则选取其中编号最小的城市。形式化地,你需要求出使得max1≤i≤nd(u,i)最小的u,若存在多个可能的u则选取其中最小的。
输入格式
第一行,两个正整数n,m,表示 A 国的城市数量与双向道路数量。
接下来m行,每行两个整数ui,vi,表示一条连接城市ui与城市vi的双向道路。
输出格式
输出一行,一个整数,表示建设难度最小的城市编号。如果有多个满足条件的城市,则选取其中编号最小的城市。
输入样例 1
3 3 1 2 1 3 2 3
输出样例 1
1
输入样例 2
4 4 1 2 2 3 3 4 2 4
输出样例 2
2
数据范围
对于40的测试点,保证1≤n≤300 。
对于所有测试点,保证1≤n≤2000,1≤m≤2000,1≤ui,vi≤n。
学习小组
时间限制:1.0 s
内存限制:512.0 MB

输入样例 1
4 2 1 3 2 1 5 6 3
输出样例 1
12
输入样例 2
8 1 3 2 4 3 5 4 6 0 2 5 6 4 3 3 4
输出样例 2
21
