试卷总分:100分
选择题 10题 20分
判断题 10题 20分
编程题 2题 60分
快速幂算法的核心思想?
斐波那契数列的递推公式为f(n)=f(n-1)+f(n-2),f(1)=1,f(2)=1,则f(6)的值?
以下哪个问题最适合用贪心算法求解?
已知数组arr[5] = {1,2,3,4,5},其前缀和数组preSum中,已知preSum[0]=0,则preSum[3]的值?
差分算法最适合解决以下哪类问题?
在有序数组中查找两个数的和等于目标值,最优的解法是双指针法,其时间复杂度为?
二分查找算法的前提条件?
以下哪个STL容器是动态数组,支持随机访问?
STL中,用于对容器元素进行排序的函数?
以下关于string类的说法,错误的?
快速幂算法可以将求a^b的时间复杂度从θ(b) 优化到 θ(logb)。
递推算法是从已知的初始条件出发,逐步推导出后续结果。
贪心算法的核心思想是枚举所有可能的情况。
前缀和数组可以快速求出数组中任意区间的元素和。
对差分数组求前缀和,可以得到原数组。
二分查找的最坏时间复杂度是θ(n)。
双指针算法只能用于处理有序数组的问题,无法在无序数组或链表中使用。
vector容器的push_back()函数可以在序列头部插入元素。
set容器中的元素是内部有序且不重复的。
map容器存储的是键值对,键是唯一的。
现有长度为 n 的数列 a、数列 b、数列 c 再给定一个长度为 q 的查询数列 x。
对于每次查询 xi ,请判断能否从三个数列中各选一个元素,使得三者之和恰好等于 xi。
第一行,一个整数n。
第二行,n个整数,表示数列a1,a2,...,an。
第三行,n个整数,表示数列b1,b2,...,bn。
第四行,n个整数,表示数列c1,c2,...,cn。
第五行,一个整数q,表示q次查询。
第六行,q个整数,表示每一次查询的整数xi。
共q行,第i表示查询xi的结果。
1≤n≤100
0≤ai,bi,ci≤10^8
1≤q≤2×10^5
0≤xi≤3×10^8
所有输入均为整数
3
1 2 3
4 5 6
7 8 9
2
12 20
Yes
No
4
0 100 200 300
0 50 150 250
0 80 180 280
5
0 430 580 630 750
你遇到了 n 只怪兽,第 i 只怪兽的初始体力为 hi。当怪兽的体力降至 0 级以下时,会立即消失。
你可以释放爆炸攻击怪兽,每次爆炸规则如下:选择一只存活的怪兽作为爆炸中心,中心怪兽的体力减少 a,其余所有怪兽的体力各减少 b,其中 a>b。
请计算消灭所有怪兽最少需要释放多少次爆炸。
第一行三个整数,表示n,a,b
接下来n个整数hi,表示n只怪兽的体力
输出消灭所有怪兽所需的最小爆炸次数
输入中的所有数均为整数
1≤n≤10^5
1≤b≤a≤10^9
1≤hi≤10^9
4 5 3
8 7 4 2
2 10 4
20 20
5 2 1
900000000 900000000 1000000000 1000000000 1000000000
800000000