25pts 找不出bug 求调
查看原帖
25pts 找不出bug 求调
810316
Qiluao楼主2023/7/20 09:58
#include<iostream>//B3667 求区间所有后缀最大值的位置
#include<cstdio>//单调队列练习题
using namespace std;
const int N=1e6+5;
int n,k;
unsigned long long a[N],q[N],f,b;//q数组为单调递减队列
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;++i){
		scanf("%lld",a+i);
		while(b>f&&a[q[b-1]]<=a[i])
			b--;
		q[b++]=i;
		if(i>=k){
			if(i-q[f]+1>k)
				f++;
			printf("%d\n",b-f);
		}
	}
	return 0;
}
2023/7/20 09:58
加载中...