查找键 "key" 是否存在,正确的代码是?( )
以下代码的输出是?( )
int f(int n) {
if(n == 0) return 2;
return n*f(n-1);
}
int main() {
cout << f(3);
}set 的组织特点是?( )
以下代码的输出是?( )
map<string, int> m; m["apple"]= 5; m["banana"] = 3; cout << m["apple"];
以下代码的输出是?( )
set<int> s; s.insert(5); s.insert(2); s.insert(8); for (int x : s) cout << x <<" ";
在一个有序序列里,二分查找一个给定的键值,算法的时间复杂度是?( )
若 pre[i] = a[1] + … + a[i],则能表示 a[3] 到 a[9] 的和公式是?( )
以下代码的时间复杂度为?( )
for(int step=1; step<n; step=step*2){
std::cout <<step<<"\n";
}计算斐波那契序列应使用哪种算法?( )
以下代码的输出是?( )
int f[10];
f[0] = 0;
f[1] = 1;
for (int i = 2; i<10; i++){
f[i] = f[i-1] + f[i-2];
}
cout << f[8];递归程序书写不当可能导致栈溢出。( )
map 的查找单个键的时间复杂度是 O(log n)。( )
前缀和可以用于解决任意区间求最大值的问题。( )
set 的元素按大小降序排列。( )
map 中的一个键不能对应两组数据。( )
二分查找时,需要保证搜索序列是有序的,否则无法保证正确性。( )
模运算中,(a-b) % m 必然等于(a % m) - (b % m)。( )
如果一个数列满足递推关系 an = 2*a(n-1) - 3 ,那么该数列是等差数列。( )
set 的 insert 操作不会插入重复元素。( )
二分查找可以用于查找旋转数组中的元素。( )
字符串的不同字串
题目描述
给定一个由小写英文字母组成的字符串 s。请问 s的不同非空子串有多少种?
子串是指字符串中连续的一段字符。例如,xxx 是 yxxxy 的子串,但不是 xxyxx 的子串。
输入
输入一行,包含一个字符串 s。
输出
输出一个整数,表示 s的不同非空子串的数量。
数据范围
s仅由小写英文字母组成。
1≤∣s∣≤100,其中 ∣s∣表示字符串的长度。
输入样例1
aababc
输出样例1
17
输入样例2
abracadabra
输出样例2
54
坐标选点
题目描述
修建了一条长度为 m 公里的铁路,起点和终点已经建有火车站。铁路沿线有 n 座城市(城市不位于起点或终点),第 i 座城市到铁路起点的距离为 ai 公里。
现在计划在这 n 座城市中选择 c 座修建火车站,使得所有火车站(包括起点和终点的火车站)之间的最小相邻距离尽可能大。请你计算这个最小相邻距离的最大可能值。
输入
第一行包含三个正整数n、c、m,分别表示城市数量、计划修建的火车站数量以及铁路总长度。
第二行包含n个正整数a1,a2,...,an,表示每座城市到铁路起点的距离。
输出
输出一个整数,表示最小相邻距离的最大可能值。
数据范围
1≤c≤n≤10^6,1≤ai<m≤10^9,输入中的所有数值均为整数。
输入样例1
5 3 10 1 2 8 4 9
输出样例1
2