二分模版題

2022-07-17 08:24:12 字數 967 閱讀 1017

給定乙個按照公升序排列的長度為n的整數陣列,以及 q 個查詢。

對於每個查詢,返回乙個元素k的起始位置和終止位置(位置從0開始計數)。

如果陣列中不存在該元素,則返回「-1 -1」。

輸入格式

第一行包含整數n和q,表示陣列長度和詢問個數。

第二行包含n個整數(均在1~10000範圍內),表示完整陣列。

接下來q行,每行包含乙個整數k,表示乙個詢問元素。

輸出格式

共q行,每行包含兩個整數,表示所求元素的起始位置和終止位置。

如果陣列中不存在該元素,則返回「-1 -1」。

資料範圍1≤

n≤100000

'>1≤n≤100000

1≤n≤1000001≤

q≤10000

'>1≤q≤10000

1≤q≤100001≤

k≤10000

'>1≤k≤10000

輸入樣例:

6 3

1 2 2 3 3 434

5

輸出樣例:
3 4

5 5-1 -1

**:

#include #include 

#include

#include

using

namespace

std;

intconst n = 100010

;int

nums[n];

intn,m;

int main(void

)

for(int t=0;t)

if(nums[r] ==x)

printf(

"%d\n

",r);

}else

}return0;

}

二分查詢模版

用於一般的二分查詢 public static intbinsearch2 int arr,int target if arr mid target else return 1 1 為啥是 lo mid 1,hi mid 1 而不是 lo mid,hi mid 呢?看迴圈條件 while lo hi...

模版 整數二分

確定乙個區間,使得目標值一定在這個區間內 從題目中找到一種性質 根據上述的性質,具體可以把整數二分劃分為兩大類問題 第一類 目標值是前半段的右端點 將 l,r l,r l,r 分成 l,mid 1 l,mid 1 l,mid 1 和 mi d,r mid,r mid,r 如果mid midmi d處...

二分查詢解題模版

常規 樸素的二分查詢 在一維陣列中查詢乙個數,有返回索引,無則返回 1 int binary search int arr,int n,int val else if arr mid val else return 1 變體1 可以總結為00001111問題,查詢滿足條件的第乙個1 int bina...