PTA 7 4 中位數 10分

2021-10-03 04:39:15 字數 1260 閱讀 1715

乙個有 n 個整數的陣列 a,n是乙個奇數。

每次可以選擇陣列裡的乙個元素 aia_

ai​ 並把這個元素加上 1。

在至多 k

kk 次操作之後,陣列的中位數最大能變成多少。

輸入格式:

多組輸入

第一行兩個整數 n,k

(1≤n

≤2×1

05,1

≤k≤1

09

)n,k(1≤n≤2×10^5,1≤k≤10^9)

n,k(1≤

n≤2×

105,

1≤k≤

109)

。第二行 n

nn 和整數 a1,

a2,.

....

.,an

a_1,a_2,......,a_n

a1​,a2

​,..

....

,an​

。輸出格式:

k

kk 次操作後陣列的中位數。

輸入樣例:

3 2

1 3 5

輸出樣例:

5
解題思路

假設原陣列的中位數為a[mid]則按照題目要求進行k次操作後中位數應該在a[mid]a[mid]+k之間,在這個區間內使用二分法便可以搜尋出滿足條件且最大的中位數。

避雷測試資料有多組

需使用long long型別

ac**

#include

#include

#define ll long long

using

namespace std;

/** * 中位數變為 mid 需要的操作次數

* @param arr 有序陣列

* @param len 陣列長度

* @param mid 預期中位數

* @return 操作次數(每次操作挑乙個元素加1)

*/ll time

(const ll *arr, ll len, ll mid)

return t;

}int

main()

cout << l-

1<< endl;

}return0;

}

7 4 中位數 10分

乙個有 n 個整數的陣列 a,n是乙個奇數。每次可以選擇陣列裡的乙個元素 a i 並把這個元素加上 1。在至多 k 次操作之後,陣列的中位數最大能變成多少。多組輸入 第一行兩個整數 n,k 1 n 2 10 5 1 k 10 9 第二行 n 和整數 a 1 a 2 a n k 次操作後陣列的中位數。...

PTA 7 4 解密英文藏頭詩 15分

pta 7 4 解密英文藏頭詩 15分 本題要求編寫乙個解密英文藏頭詩的程式。建議使用動態記憶體分配方法處理字串的輸入。輸入格式 輸入為一首英文藏頭詩,每句一行,小於20行,每行不超過80個字元,以 作為藏頭詩的輸入結束標誌。輸出格式 取出每句的第乙個字元,連線在一起形成乙個字串並輸出。輸出樣例 i...

PTA 7 4 列車排程 25 分

火車站的列車排程鐵軌的結構如下圖所示。兩端分別是一條入口 entrance 軌道和一條出口 exit 軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條...