1105 第K大的數 思維,二分)

2021-09-29 07:23:05 字數 901 閱讀 7249

陣列a和陣列b,裡面都有n個整數。

陣列c共有n^2個整數,分別是:

a[0] * b[0],a[0] * b[1] … a[0] * b[n-1]

a[1] * b[0],a[1] * b[1] … a[1] * b[n-1]

…a[n - 1] * b[0],a[n - 1] * b[1] … a[n - 1] * b[n - 1]

是陣列a同陣列b的組合,求陣列c中第k大的數。

例如:a:1 2 3,b:2 3 4。

a與b組合成的c為

a[0] a[1] a[2]

b[0] 2 3 4

b[1] 4 6 8

b[2] 6 9 12

共9個數。

輸入第1行:2個數n和k,中間用空格分隔。n為陣列的長度,k對應第k大的數。(2 <= n <= 50000,1 <= k <= 10^9)

第2 - n + 1行:每行2個數,分別是a[i]和b[i]。(1 <= a[i],b[i] <= 10^9)

輸出輸出第k大的數。

輸入樣例

3 21 2

2 33 4

輸出樣例

9二分套二分

先二分c的範圍,在判斷位於第幾大

如果有mid符合條件而不在結果裡面 在縮小的過程中肯定可以找到乙個符合條件且最小

#includeusing namespace std;

#define ll long long

ll a[50010],b[50010];

int n,k;

ll search(ll x)

return sum;

}int main()

cout<;

return 0;

}

1105 第K大的數 二分

1105 第k大的數 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 陣列a和陣列b,裡面都有n個整數。陣列c共有n 2個整數,分別是a 0 b 0 a 0 b 1 a 1 b 0 a 1 b 1 a n 1 b n 1 陣列a同陣列b的組合 求陣列c中第k大的數...

1105 第K大的數 二分搜尋

1105 第k大的數 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 陣列a和陣列b,裡面都有n個整數。陣列c共有n 2個整數,分別是a 0 b 0 a 0 b 1 a 1 b 0 a 1 b 1 a n 1 b n 1 陣列a同陣列b的組合 求陣列c中第k大的數...

51NOD 1105 第K大的數 二分

1105 第k大的數 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 收藏關注 陣列a和陣列b,裡面都有n個整數。陣列c共有n 2個整數,分別是a 0 b 0 a 0 b 1 a 1 b 0 a 1 b 1 a n 1 b n 1 陣列a同陣列b的組合 求陣列c中...