time limit: 600 ms memory limit: 65536 kib
給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。
然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出-1。
單組輸入。首先輸入乙個整數n(1 <= n && n <= 3000000),接下的一行包含n個數。
再接下來的一行包含乙個正整數q(1 <= q && q <= 10000),表示有q次詢問。
再接下來的q行,每行包含乙個正整數x。
對於每次詢問,輸出乙個整數代表答案。
5
1 3 5 7 931
58
關於二分查詢的詳細解析:1
3-1
/***************************************
用遞迴寫二分查詢是效率很低下的一種方式
一般情況下二分查詢不用遞迴形式
***************************************/
#include #include int a[3000010] = ;
int binary_search(int *, int, int, int);
int main()
scanf("%d", &q);
while(q--)
return 0;
}int binary_search(int *a, int l, int r, int key)
return -1;
}
M 二分查詢
time limit 600ms memory limit 65536kb problem description 給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出 1。input 單組輸...
M 二分查詢
time limit 600ms memory limit 65536kb submit statistic problem description 給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號...
M 二分查詢
submit statistic problem description 給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出 1。input 單組輸入。首先輸入乙個整數n 1 n n 300...