遞推遞迴練習P M 二分查詢

2021-07-30 14:57:30 字數 932 閱讀 3526

題目簡要:

description

給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。

然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出-1。

input

單組輸入。首先輸入乙個整數n(1 <= n && n <= 3000000),接下的一行包含n個數。

再接下來的一行包含乙個正整數q(1 <= q && q <= 10000),表示有q次詢問。

再接下來的q行,每行包含乙個正整數x。

output

對於每次詢問,輸出乙個整數代表答案。

sample input

5

1 3 5 7 931

58

sample output

1

3-1

解題思路:

對於這道題,一開始我是很單純的,直接寫了個程式提交,結果tle···好吧,這道題的思路,其實題目已經給出了,二分查詢。

附**:

#include

using

namespace std;

int a[

3000001

];int

demo

(int m,

int x,

int y);

intmain

() cin>>n;

while

(n--)

}int

demo

(int m,

int x,

int y)

return-1

;}

解題感受:

這道題不僅要用二分查詢,最後的輸入輸出還要用c的輸入輸出,如果用cin,cout的話,同樣會超時。

P M 二分查詢

description 給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出 1。input 單組輸入。首先輸入乙個整數n 1 n n 3000000 接下的一行包含n個數。再接下來的一行包含...

P M 二分查詢

description 給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出 1。input 單組輸入。首先輸入乙個整數n 1 n n 3000000 接下的一行包含n個數。再接下來的一行包含...

二分查詢(遞迴)

二分查詢 problem description 給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出 1。input 單組輸入。首先輸入乙個整數n 1 n n 3000000 接下的一行包含...