求助,单调队列第一个测试点RE。
查看原帖
求助,单调队列第一个测试点RE。
279174
FatFairy楼主2021/8/12 18:46
#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。

2021/8/12 18:46
加载中...