单调队列求助100pts但hack数据过不去
查看原帖
单调队列求助100pts但hack数据过不去
400468
Aakkosetsumussa楼主2023/7/17 10:52
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,l,r,a[30000000],m[30000000],mx=-0x3f3f3f3f,q[30000000],head=1,tail=1;
int main() {
	scanf("%lld %lld %lld",&n,&l,&r);
	for(ll i=0; i<=n; i++)
		scanf("%lld",&a[i]);
	for(ll i=l; i<=n; i++) {
		while(head<=tail&&m[q[tail]]<=m[i-l])
			tail--;
		q[++tail]=i-l;
		while(q[head]+r<i)
			head++;
		m[i]=m[q[head]]+a[i];	
	}
	for(ll i=n+1-r; i<=n; i++)
		mx=max(mx,m[i]);
	printf("%lld\n",mx);
	return 0;
}
2023/7/17 10:52
加载中...