正在载入在线练习界面,本页内容可直接阅读…
AK CSP › NOIP 提高 2016 第一轮真题 › 第 15 题
NOIP 提高 2016 第一轮 第 15 题:该题选项在原卷 OCR 中缺失,待人工复核。
题目
给定含有 $n$ 个不同的数的数组 $L=\text{<}x_1,x_2,\dots,x_n\text{>}$。如果 $L$ 中存在 $x_i(1<i<n)$ 使得 $x_1<x_2<\dots<x_{i-1}< x_i>x_{i+1}>\dots>x_n$, 则称 $L$ 是单峰的,并称 $x_i$ 是 $L$ 的
“峰顶”。现在已知 $L$ 是单峰的,请把 a-c 三行代码补全到算法中使得算法 正确找到 $L$ 的峰顶。
a.Search(k+1, n)
b.Search(1, k-1)
c.return L[k]
Search(1, n)
1.k← [n/2]
2.if L[k] > L[k-1] and L[k] > L[k+1]
3.then
4.else if L[k] > L[k-1] and L[k] < L[k+1]
5.then
6.else
正确的填空顺序是( )。选项
- A. c, a, b
- B. c, b, a
- C. a, b, c
- D. b, a, c
答案
A
题解
考点定位
本题考「单峰折半」,对应大纲 4.3.1 二分(难度【4】)。
解题过程
与普及组同题:单峰序列二分找峰。mid 与 mid+1 比较判方向,输出下标序。官方答案 A(c,a,b)。
选 A。
易错提醒
① n=3 代入最快;② 比较对象是相邻两元素不是目标值。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号