「藍貓淘氣三千問,看藍貓,我有姿勢我自豪!」話說能考上hysbz的孩紙們肯定都是很有姿勢的孩紙們,但是大家普遍偏科,都只有一門科目考得好。已知hysbz的入學考試科目數量小於等於109
,而有n個學生參加了入學考試。現在hysbz要刷人了,招生辦每一次刷人會把乙個科目考得好的人全部刷掉,但是最多不能刷超過k次。(刷就是不錄取)而hysbz的校長看錄取名單時,最喜歡看的就是連續都是同乙個科目考得好的人。他定義完美學生序列為連續且考得好的科目都為同一門的學生序列。現在招生辦主任想讓你幫他設計一種錄取方案,使得最長的完美學生序列盡量長。
共n+1行,第一行2個正整數n,k,n表示入學考試人數,k表示刷人次數上限。
接下來n行,每行僅乙個正整數ai,為i號學生所考得好的科目。
僅1個正整數,為最長的最長完美學生序列。
9 1
2 7
3 7
7 3
7 5
7 總共有9個學生,最多只能刷一次學生。
若不刷,最長完美學生序列長度為2
若刷掉考第3門考得好的學生,則學生序列變成2 7 7 7 7 5 7,最長完美學生序列長度為4.
對於10%的資料:n<=10
對於30%的資料:n<=1000
對於100%的資料:1<=n<=100000
#include
#include
#include
#include
using
namespace
std;
const
int n = 1e5 + 5;
int n, k, ans, a[n], b[n], cnt[n], h[n];
inline
void ckmax(int &x, const
int &y)
inline
int get()
int main()
ckmax(ans, cnt[a[i]]);
//這裡可直接用cnt[a[i]]於更新答案
//因為若右邊界再往右移且數字a[i + 1 ~ r]都與a[i]不相同
//那麼相較於右邊界為i的方案,之後的方案都可能是不優的
//同時我們每次只讓右邊界右移一位,因此也不會遺漏
}printf("%d\n", ans);
fclose(stdin); fclose(stdout);
return
0;}
秀姿勢 模擬 雜湊
藍貓淘氣三千問,看藍貓,我有姿勢我自豪!話說能考上hysbz的孩紙們肯定都是很有姿勢的孩紙們,但是大家普遍偏科,都只有一門科目考得好。已知hysbz的入學考試科目數量小於等於10 9,而有n個學生參加了入學考試。現在hysbz要刷人了,招生辦每一次刷人會把乙個科目考得好的人全部刷掉,但是最多不能刷超...
秀姿勢 模擬 雜湊
乙個序列,去掉 k role presentation k k個數字,使最長的完美連續子串行盡量長。佇列 雜湊 m ap role presentation ma p m ap 快拍 二分 用佇列維護乙個區間,使得這個區間的不同數字個數不超過 k 1 role presentation k 1 k ...
日常訓練 壓縮
巨大的文字往往令人頭疼,特別是文字內容有大量重複的情況下,巨大的文字不便於運輸和閱讀,於是我們提出了noip nonsense obivous index pattern 荒謬的顯然索引法 一種 有效的 壓縮文字的方法。noip壓縮後的格式很特別,乙個文字壓縮後由若干個單元組成,每個單元由3部分組成...