这个程序样例都过不了啊?
查看原帖
这个程序样例都过不了啊?
494699
卷王慢即快楼主2022/9/28 13:02
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000001
int head=1,tail=1;
int q[maxn],d[maxn],f[maxn];
int n,qq,k;
inline int read();
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>d[i];
	cin>>qq;
	while(qq--)
	{
		cin>>k;
		memset(f,0,sizeof(f));
		memset(q,0,sizeof(q));
		for(int i=2;i<=n;i++)
		{
			if(q[head]+k<i) head++;
			f[i]=f[q[head]]+(d[q[head]]<=d[i]);
			while(head<=tail && (f[q[tail]]>f[i] || (f[q[tail]]==f[i] && d[q[tail]]<d[i]))) tail--;
			q[++tail]=i;
		}
		cout<<f[n]<<endl;
	}
	return 0;
}
2022/9/28 13:02
加载中...