社区讨论
60pts求调
P3069[USACO13JAN] Cow Lineup G参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miamaew2
- 此快照首次捕获于
- 2025/11/23 02:23 3 个月前
- 此快照最后确认于
- 2025/11/23 12:41 3 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, k, a[111111];
int mx = 0, tgt;
map<int, int> mp, m;
signed main(){
cin >> n >> k;
for (int i = 1; i <= n; i ++){
cin >> a[i]; mp[a[i]] ++;
}
for (int i = 1; i <= n; i ++){
if (mp[a[i]] > mx){
mx = mp[a[i]]; tgt = a[i];
}
}
int l = 1, r = 1, num = 0, cnt = 0, ans = 0; // num:删除的种类数 cnt:tgt的个数 ans:答案
while (l <= n and r <= n){
if (num <= k){
if (a[r] == tgt) cnt ++;
else{
m[a[r]] ++;
if (m[a[r]] == 1) num ++;
}
r ++;
}
else{
if (a[l] == tgt) cnt --;
else{
m[a[l]] --;
if (m[a[l]] == 0) num --;
}
l ++;
}
ans = max(ans, cnt);
}
cout << ans;
return 0;
}
rt,必关。
回复
共 0 条回复,欢迎继续交流。
正在加载回复...