第k大數 二分法

2021-08-11 12:57:54 字數 928 閱讀 7274

時間限制: 10 sec 記憶體限制: 128 mb

有兩個序列a,b,它們的長度分別為n和m,那麼將兩個序列中的元素對應相乘後得到的n*m個元素從大到小排列後的第k個元素是什麼?

輸入的第一行為乙個正整數t (t<=10),代表一共有t組測試資料。

每組測試資料的第一行有三個正整數n,m和k(1<=n, m<=100000,1<=k<=n*m),分別代表a序列的長度,b序列的長度,以及所求元素的下標。第二行為n個正整數代表序列a。第三行為m個正整數代表序列b。序列中所有元素的大小滿足[1,100000]。

對於每組測試資料,輸出一行包含乙個整數代表第k大的元素是多少。

3

3 2 3

1 2 3

1 22 2 1

1 11 1

2 2 4

1 11 1

3

11

首屆全國中醫藥院校大學生程式設計競賽

用二分法,每次猜乙個數x,求出有多少個數比x大,直到有k個時停止

最後有可能會大1,所以特判一下

#include 

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 100010;

ll a[maxn],b[maxn];

ll n,m,k,t;

ll check(ll x)

return cnt;

}int main()

while (check(l)printf("%lld\n",l);

}return

0;}

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...

二分法,二分搜尋

二分法是乙個應用很廣泛的演算法 好吧,剛說出這句話的時候,我查了一下資料,發現我了解的應用寥寥無幾.ok,既然不知道,那就下次補充把。咱們直接進入主題。二分法 bisection method 是一種方程式根的近似值求法。演算法 若要求已知函式f x 0的值則 1.先找出乙個區間 a,b 使得f a...