bzoj1012(单调队列)

分析:单调队列模板题,用来统计前k个或后k个数中的最大值。

#includebits/stdc++.h
using namespace std;
int a[200005],ans[200005];
char q[1];
int main()
{
    char c;
    int M,D,cnt=0,lst=0,v;
	scanf("%d%d", M, D);
	while (M--)
	{
		scanf("%s%d",q,v);
		if(q[0]=='A')
		{
			a[++cnt]=(lst+v)%D;
			for(int i=cnt;i;i--)
				if(ans[i]a[cnt]) ans[i]=a[cnt];
				else break;
		}
		else
        printf("%d\n",lst=ans[cnt-v+1]);
	}
	return 0;
}

最新回复(0)
/jishuigU53pM_2Bz2FabPMpygKjfOZ4yFSE_2Bt2jVoS_2Bug_3D_3D4794912
8 简首页