時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 262144k,其他語言524288k
64bit io format: %lld
題目描述
你的團隊中有 n個人,每個人有乙個能力值 ai ,現在需要選擇若干個人組成乙個團隊去參加比賽,由於比賽的規則限制,乙個團隊裡面任意兩個人能力的差值必須要小於等於 k ,為了讓更多的人有參加比賽的機會,你最多能選擇多少個人參加比賽?
輸入描述:
第一行乙個整數 t,表示案例組數。
每個案例有兩行:
第一行兩個正整數 n,k ,表示人的數量。
第二行n個以空格分隔的整數 ai,表示每個人的能力值。
輸出描述:
每個案例輸出一行,表示可以參加比賽的最多人數。
示例1
輸入:
15 3
8 3 5 1 6
輸出:
備註:
t<=10,1<=n<=2e5,1<=k<=1e9,1<=ai<=1e9
解題思路:
解法很簡單,輸入後排序,然後遍歷加入到佇列中,如果佇列頭和尾的值超過了題目限制,那麼彈出佇列頭部到符合題意為止,然後記錄資料,最後輸出答案即可.
**如下:
#include
using
namespace std;
typedef
int ll;
ll n,m;
ll v[
200005];
intmain()
sort
(v,v+n)
; queue<
int>q;
int mn=0;
for(
int i=
0;i) mn=mn>q.
size()
?mn:q.
size()
;}cout<}return0;
}
牛客小白月賽24 B 組隊 二分
解析 先把陣列排序,我們需要取某一段,這一段的最大 最小 k,關鍵是取哪一段。可以對於每個數,往後找,找到第乙個減它 k的,這中間一段就滿足了任意兩個數之差 k了。找的過程可以用upper lound x 它返回第乙個大於x的數。當然也可以直接手寫二分了。include include includ...
牛客練習賽24 B 鳳 凰
很久很久很久以前沒寫出來的題,現在突然想起來把它給補了 思路 對於1號節點的若干個兒子節點,我們發現其上有鳥的時間其實就等去該子樹的大小 1,然後該樹上的鳥到根節點又需要1秒,所以我們只需要找出根節點的若干個兒子中最大的子樹就行,用vector存圖會超時,所以直接就用鏈式前向星寫了 includeu...
牛客小白月賽24 題解
牛客小白月賽24 題解 最後還剩一道計算幾何,其實可以ak,但沒必要 b 簽到 include using namespace std const int n 2e5 10 int a n int main printf d n ans return 0 c 還行 includeusing name...