E 這裡簽到 貪心區間

2021-10-25 22:28:42 字數 904 閱讀 3366

problem description

小剛是某校的體育老師。

他有n個學生,第i個學生的體力為a(i)。

近期有一場拔河比賽,這個拔河比賽比較特別,比賽雙方不限制拔河的人數,

但是需要滿足隊伍內任意兩個學生的體力值差值不超過5。

小剛認為人數越多隊伍越強,

現在他邀請你幫他算算最多能選出多少人

使得選出的人滿足比賽條件且人數最多。

input

第一行給出學生數n,第二行給出n個學生的體力值a(i)。1<=n<=2e5,1<=a(i)<=1e9

output

輸出能選出的最大人數

sample input

6

1 10 17 12 15 2

sample output

3
第一眼看上去像揹包,但仔細讀讀題發現顯然不是:就是一道貪心。

將隊員排序之後尋找最大符合要求的區間即可,具體過程見**。

#include

#define iof ios_base::sync_with_stdio(false)

using

namespace std;

const

int n =

200005

;int a[n]

, n, minn, maxx;

inline

bool

cmp(

const

int&a,

const

int&b)

intmain()

cout << ans << endl;

return0;

}

貪心 區間貪心

給出n個開區間 x,y 從中選擇盡可能多的開區間,使得這些開區間兩兩沒有交集。先對左端點 從大到小 排序,如果左端點相同就對右端點從小到大排序。區間不相交問題 include include using namespace std const int maxn 110 區間結構體 struct in...

CF 1175E 經典題面目 多詢問區間貪心

給n個區間 q個詢問 每個詢問 給乙個區間 s,t 問覆蓋該區間至少需要多少個區間 考慮乙個詢問的時候 我們肯定在左端點 s的區間裡面選右端點最大的 在繼續這樣的貪心 但是這樣的複雜度是nq的 考慮倍增優化 f i j 表示以i為左端點 跳 2 j 1 可以到達的點 注意預處理的細節 這樣單次詢問複...

牛客網 206269 來這裡簽到收費

題目描述 期末考試結束了,青竹發現很多人掛了高數,只能等著重修,還要交200元的重修費。現在青竹有了所有人的高數成績,青竹想知道如果所有掛科的人都在第二年重修,學校收到多少重修費?掛科是指一門課的分數小於60分。輸入描述 第一行乙個整數n,表示考試的人數。1 include include incl...