社区讨论

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 条回复,欢迎继续交流。

正在加载回复...