牛客小白賽 B 組隊 佇列 區間思維

2021-10-05 05:21:42 字數 878 閱讀 7466

給你n個數, 讓你組隊, 問如何組能組成乙個小組,使這個小組元素最多且這個小組滿足裡面得元素差值兩兩等於小於k.

佇列和區間思維差不多。

先排序再遍歷

每次更新一段新的區間, 如果出現當前差值大於k, 那麼增加左區間,反之增加右區間的值。l - r即為小組的元素個數。

#include

using

namespace std;

long

long a[

200005];

intmain()

long

long sum =1;

while

(!f.

empty()

)else

ans =

max(ans, sum);}

ans =

max(ans, sum)

; cout << ans << endl;

while

(!q.

empty()

) q.

pop();

while

(!f.

empty()

) f.

pop();

}return0;

}

#include

using

namespace std;

long

long a[

200005];

intmain()

else

ans =

max(ans, r - l);}

cout << ans << endl;

}return0;

}

牛客小白月賽24 B 組隊

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 你的團隊中有 n個人,每個人有乙個能力值 ai 現在需要選擇若干個人組成乙個團隊去參加比賽,由於比賽的規則限制,乙個團隊裡面任意兩個人能力的差值必須要小於...

牛客小白月賽24 B 組隊 二分

解析 先把陣列排序,我們需要取某一段,這一段的最大 最小 k,關鍵是取哪一段。可以對於每個數,往後找,找到第乙個減它 k的,這中間一段就滿足了任意兩個數之差 k了。找的過程可以用upper lound x 它返回第乙個大於x的數。當然也可以直接手寫二分了。include include includ...

牛客 2020 11 14牛客小白月賽29 B

by 041 本人原文 簡單的說,對於乙個bool量x x 1 x x 0 0 x 1 1 x 0 x x 1 x x 0 x 所以,對於每一次操作,在有影響 上面的2 3 5三種情況 到的位置加入相應操作的標記最後整合就行 對於第i位 0的操作 清空之前該位置所有的操作,加上標記1 對於第i位 1...