1 条题解
发布要求:学生须先通过本题;教师和管理员可直接维护官方内容。内容应说明核心思路、关键步骤、正确性理由和复杂度。 只粘贴代码不会通过审核。
你尚未通过该题,通过后才能发布题解。
-
0
01|2025-03-L5-TF-08
学生训练答案:F
原卷事实
题面声称二分查找同样适用于无序数组。
必要假设
使用基于大小关系舍弃一半区间的普通二分。
C++11 / 算法语义
该推理需要单调或有序条件,无序数组不能直接使用。
命题预期
判断为假。
推导结论
训练答案F。
02|2025-03-L5-SC-11
学生训练答案:C
原卷事实
候选整数共有100个。
必要假设
目标保证在区间内,每次按二分缩小候选集。
C++11 / 算法语义
最坏次数为ceil(log2(100+1))=7。
命题预期
选择C。
推导结论
训练答案C。
03|2025-06-L5-TF-06
学生训练答案:T
原卷事实
字典按字母顺序排列,每步比较中间页并舍弃不可能的一半。
必要假设
把页首字母序视为单调,并允许继续细化到目标页。
C++11 / 算法语义
利用有序性反复折半正是二分查找思想。
命题预期
判断为真。
推导结论
学生训练答案T。
04|2025-12-L5-TF-05
学生训练答案:T
原卷事实
题面比较一次线性查找与先排序再二分。
必要假设
使用比较式查找且无其他排序收益。
C++11 / 算法语义
一次线性查找O(n),先排序通常O(n log n)。
命题预期
判断为真。
推导结论
训练答案T。
05|2025-03-L5-SC-12
学生训练答案:A
原卷事实
横线需计算left和right的中点。
必要假设
left、right为合法索引且left<=right。
C++11 / 算法语义
A与数学中点等价,并避免left+right先发生有符号溢出;C在范围足够小时也可运行,但不如A稳健。
命题预期
“最佳”选择A。
推导结论
训练答案A;解析说明C与A的边界差异。
06|2025-12-L5-SC-11
学生训练答案:A
原卷事实
区间初始化为[0,arr.size())。
必要假设
arr按非降序排列。
C++11 / 算法语义
循环维持半开区间不变量,结束时l为首个满足位置或size。
命题预期
A正确。
推导结论
训练答案A。
07|2026-03-L5-TF-02
学生训练答案:T
原卷事实
代码维护[l,r)半开区间。
必要假设
数组升序。
C++11 / 算法语义
a[mid]>=x令r=mid,否则l=mid+1,结束l为答案或size。
命题预期
判断为真。
推导结论
训练答案T。
08|2026-03-L5-SC-08
学生训练答案:A
原卷事实
搜索区间为[l,r)。
必要假设
数组非降序。
C++11 / 算法语义
a[mid]>=x时答案位于左半含mid,故r=mid。
命题预期
选择A。
推导结论
训练答案A。
09|2026-06-L5-TF-07
学生训练答案:F
原卷事实
题目声称单链表支持O(1)随机访问。
必要假设
按普通单链表。
C++11 / 算法语义
访问第k个结点需顺序移动,非O(1),直接套用数组式二分不能保持同样总复杂度。
命题预期
判断为F。
推导结论
训练答案F。
10|2026-06-L5-SC-09
学生训练答案:C
原卷事实
搜索区间为[l,r)。
必要假设
数组有序。
C++11 / 算法语义
a[mid]>=x时答案位于mid或左侧,令r=mid。
命题预期
选项C。
推导结论
训练答案C。
11|2025-06-L5-SC-11
学生训练答案:A
原卷事实
升序数组上用上取中点,lst[mid]<=target时保留右半侧。
必要假设
lst非空分支中索引合法。
C++11 / 算法语义
循环收敛到最后一个<=target的位置,再检查是否等于target;全相同元素也返回末位。B应返回-1,C/D会破坏现有循环结构或收敛。
命题预期
选择A。
推导结论
学生训练答案A。
12|2025-06-L5-SC-12
学生训练答案:D
原卷事实
阶段1定位整数平方根区间,阶段2在[k,k+1]内二分。
必要假设
要求mid*mid、next_k*next_k和check_int*check_int均可表示;epsilon为正且足够大于机器停滞尺度。
C++11 / 算法语义
以区间宽度与epsilon比较是常见浮点终止条件,不会必然死循环;A、B、C描述命题意图。
命题预期
错误说法D。
推导结论
学生训练答案D;解析显著标注有符号乘法可表示的输入前提。
13|2025-09-L5-TF-05
学生训练答案:F(官方答案:T;本题按校注版判题)
原卷事实
官网原题与官方答案T永久保留。
必要假设
按C++11通用算法与非数组容器讨论。
C++11 / 算法语义
标准std::lower_bound只要求ForwardIterator;std::list等非数组容器也可执行,但非随机访问迭代器通常使总时间退化为线性移动。
命题预期
官方T体现教材对高效二分的数组型实现口径。
推导结论
校注版学生判题F,与官方T不同。
14|2025-12-L5-SC-12
学生训练答案:A
原卷事实
check随x增大从假变真,目标是最小真值。
必要假设
题面代码实际把K解释为最多切K刀;L、K为有效非负范围。
C++11 / 算法语义
最小可行二分在check(mid)为真时令r=mid,否则l=mid+1。
命题预期
选择A。
推导结论
训练答案A;解析显著说明题干“切成K段”与代码注释“最多切K刀”的措辞张力,以代码目标为准。
15|2026-03-L5-SC-07
学生训练答案:B
原卷事实
数组排序后为1,2,4,8,9,需选3个位置。
必要假设
n=5、k=3。
C++11 / 算法语义
最小间距3可选1,4,8;间距4最多选2个。
命题预期
程序输出3。
推导结论
训练答案B。
16|2026-03-L5-TF-07
学生训练答案:T
原卷事实
程序先排序,再对距离值域二分,每次check线性扫描。
必要假设
D代表最大值与最小值的差或同阶上界,算术不溢出。
C++11 / 算法语义
排序O(n log n),二分O(log D)轮,每轮O(n)。
命题预期
判断为真。
推导结论
训练答案T。
17|2026-03-L5-SC-10
学生训练答案:A
原卷事实
check(mid)为真时记录答案并增大下界。
必要假设
n、m有效且至少存在可行正长度。
C++11 / 算法语义
最大真值二分:真则l=mid+1,假则r=mid-1。
命题预期
选择A。
推导结论
训练答案A。
18|2026-06-L5-SC-10
学生训练答案:B
原卷事实
check(mid)为真表示mid是可行上界。
必要假设
wood非空、长度为正且check具单调性。
C++11 / 算法语义
寻找最小可行值时保留mid,令r=mid。
命题预期
选项B。
推导结论
训练答案B。
19|2025-09-L5-SC-10
学生训练答案:C
原卷事实
原文说countLE返回第k小,但代码中countLE实际返回≤x的元素个数,kthSmallest返回第k小。
必要假设
矩阵非空,k合法。
C++11 / 算法语义
当countLE(mid)>=k时保留mid作为上界hi=mid;否则lo=mid+1。
命题预期
命题预期C。
推导结论
训练答案C;解析显著区分原文函数名笔误与代码实际。
- 1
信息
- ID
- 81
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 轻松上手
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者