AQ. 【入门】二分查找右侧边界

    传统题 1000ms 128MiB

【入门】二分查找右侧边界

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

请在一个有序不递减的数组中(数组中的值有相等的值),采用二分查找,找到最后一次出现值 xx 的位置,如果不存在 xx 请输出 1-1

请注意:本题要求出 qqxx,每个 xx 在数组中最后一次出现的位置。

例如有 66 个数,分别是 1,2,2,2,3,31,2,2,2,3,3。如果依次查询 3,2,53,2,5,它们在数组中最后一次出现的位置分别是 6,4,16,4,-1

输入格式

第一行包含一个整数 nn,表示数组元素个数。

第二行包含 nn 个整数,表示数组的 nn 个元素,整数之间用空格分隔。

第三行包含一个整数 qq,表示询问个数。

第四行包含 qq 个整数,表示要查找的数,整数之间用空格分隔。

输出格式

按题意输出位置或者 1-1

样例

6
1 2 2 2 3 3
3
3 2 5
6 4 -1

数据范围与提示

  • 1n1051 \le n \le 10^5
  • 1q1051 \le q \le 10^5
  • 11 \le 数组元素的值 108\le 10^8
  • 11 \le 要查找的数 108\le 10^8

来源

二分 分治

禅城区中小学生人工智能素养复赛练习

未认领
状态
已结束
题目
50
开始时间
2026-6-7 0:00
截止时间
2026-6-19 23:59
可延期
24 小时