n個數的偽中位數定義為從小到大排序後第[(n + 1)/2]個數。其中,[x]的意思是x向下取整。
現在,給你n個數,你需要向其中增加最少的數,使得k成為最後這一組數的偽中位數。
請問你需要加入數的最少數
/* 輸入第一行包含兩個數n,k,意為原來數的個數和最後的偽中位數。
接下來一行輸入n個數,空格隔開,代表原來的數
思路:將輸入的數先進行排序,找到k這個數在原來的數中的位置begin,end(因為k在原來的數中可能會重複,所以找到起始位置和終止位置)
分三種情況討論:
1.偽中位數在begin和end區間內
2.偽中位數在begin和end區間左邊
3.偽中位數在begin和end區間右邊
*/#include
#include
#include
using
namespace std;
intgetincreasedquantity
(vector<
int>
& datas,
int n,
int k)
} begin++
; end++
;return
(mid - begin)
>=0&&
(mid - end)
<=0?
0:(mid - end)
>0?
(mid - end)
:(begin - mid);}
intmain()
sort
(datas.
begin()
, datas.
end())
; cout <<
getincreasedquantity
(datas, n, k)
<< endl;
system
("pause");
return0;
}
中位數及帶權中位數問題
資訊學競賽總是時不時與數學產生微妙的關係,中位數及帶權中位數問題有時常常成為解題的關鍵,今日有時間,所以梳理一下。先從一到簡單的題看起 士兵站隊問題 在乙個劃分成網格的操場上,n個士兵散亂地站在網格點上。網格點由整數座標 x,y 表示。士兵們可以沿網格邊上 下 左 右移動一步,但在同一時刻任一網格點...
問題 G 中位數
中位數定義 一組資料按從小到大的順序依次排列,處在中間位置的乙個數 或最中間兩個資料的平均數 給出一組無序整數,求出中位數,如果求最中間兩個數的平均數,向下取整即可 不需要使用浮點數 輸入 該程式包含多組測試資料,每一組測試資料的第一行為n,代表該組測試資料報含的資料個數,1 n 10000.接著n...
問題 G 中位數
演算法筆記 4.1小節 排序 問題 g 中位數 題目描述 中位數定義 一組資料按從小到大的順序依次排列,處在中間位置的乙個數 或最中間兩個資料的平均數 給出一組無序整數,求出中位數,如果求最中間兩個數的平均數,向下取整即可 不需要使用浮點數 輸入 該程式包含多組測試資料,每一組測試資料的第一行為n,...