求助,单调队列第一个测试点RE。

P1440 求m区间内的最小值

FatFairy @ 2021-08-12 18:46:07

#include <iostream>
#include <cstdio>
#include <deque>
#include <vector>
using namespace std;
struct nn{
    int num,val;
    nn(int n,int v){
        num = n;
        val = v;
    }
};
int main()
{
    int n,m;
    cin>>n>>m;
    vector<int> v(n);
    deque<nn> d; 
    for(int i=1;i<=n;i++){
        cin>>v[i];
    }   
    printf("0\n");
    for(int i=1;i<=n-1;i++){
        nn t(i,v[i]);
        while(!d.empty()&&t.val <= d.back().val)    d.pop_back();
        d.push_back(t);
        while(i-m >= d.front().num) d.pop_front();
        printf("%d\n",d.front().val);
    }
    return 0;
}

如题,第一个测试点RE,下载到本地可以得到正确答案,但是上传至OJ则出现RE。


by 庄nnnn额 @ 2021-08-24 21:12:15

vector::size()返回类型到底是什么?我用它的返回值和数字比较,全RE


|