社区讨论

这份90分代码还有救吗?讲懂必关

P1886【模板】单调队列 / 滑动窗口参与者 3已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mlrzsyar
此快照首次捕获于
2026/02/18 20:12
16 小时前
此快照最后确认于
2026/02/19 12:12
22 秒钟前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
queue <int> q;
map <int,int> dic;
vector <int> v1, v2;
int main() {
    int n, k;
    cin >> n >> k;
    for(int i = 1; i <= n; i++){
       int temp;
       cin >> temp;
       q.push(temp);
       dic[temp]++;
       if(q.size() > k){
           dic[q.front()]--;
           if(dic[q.front()] == 0){
               dic.erase(q.front());
           }
           q.pop();
       }
       if(q.size() == k){
           auto it1 = dic.begin();
           auto it2 = dic.end();
           it2--;
           int MINN = it1 -> first;
           int MAXN = it2 -> first;
           v1.push_back(MINN);
           v2.push_back(MAXN);
       }
    }
    for(int i = 0; i < v1.size(); i++){
        cout << v1[i] << ' ';
    }
    cout << endl;
    for(int i = 0; i < v2.size(); i++){
        cout << v2[i] << ' ';
    }
    return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...