L2-4 二分查找
当前没有测试数据。
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Description
给定一个严格单调数列,询问若干个数分别需要在数列中二分几次才能找到。如果能找到,输出二分的次数;如果不能找到,输出 NONE
。
二分查找参考程序如下:
(数列单调递增时)
l = 1, r = n, cnt = 0;
while (l <= r) {
mid = (l + r) / 2;
cnt++;
if (a[mid] == key)
break;
if (a[mid] > key)
r = mid - 1;
else
l = mid + 1;
}
(数列单调递减时)
l = 1, r = n, cnt = 0;
while (l <= r) {
mid = (l + r) / 2;
cnt++;
if (a[mid] == key)
break;
if (a[mid] > key)
l = mid + 1;
else
r = mid - 1;
}
上述程序中结束时 的值即为二分次数。
Format
Input
第一行两个整数 分别表示数列长度和询问次数。
第二行 个整数,第 个表示 。
接下来 行,每行一个整数 表示要求询问的数。
Output
共 行,如果能找到,输出二分的次数;如果不能找到,输出 NONE
。
Samples
10 4
1 2 3 5 7 9 11 12 13 14
7
6
5
4
1
NONE
4
NONE
8 4
20 18 15 10 9 8 5 4
1
2
10
40
NONE
NONE
1
NONE
zstu 2025 3 月排位赛 test
- 状态
- 已结束
- 规则
- ACM/ICPC
- 题目
- 16
- 开始于
- 2025-3-5 10:00
- 结束于
- 2025-3-10 10:00
- 持续时间
- 120 小时
- 主持人
- 参赛人数
- 1