求调(悬一关),ST表只有Subtask#1对,剩下的全WA
查看原帖
求调(悬一关),ST表只有Subtask#1对,剩下的全WA
1128559
guoguo160楼主2025/1/16 20:24

ST表,思路为反着建表,但是Subtask#0全错。不知道问题在哪。

#include <bits/stdc++.h>

#define int long long 

using namespace std;

const int N=2e5+10;

int n;
int m;
int d;
int x;
int f[N][21];
char op;
int t;
int a[N];

signed main() {
	cin>>m>>d;
	while(m--){
		op=' ';
		while(op!='Q'&&op!='A'){
			op=getchar();
		}
		if(op=='Q'){
			cin>>x;
			int k=__lg(x);
//			cout<<k<<"\n";
//			cout<<f[n][0]<<"\n";
			t=max(f[n][k],f[(k!=0)?n-(1<<k):n][k]);
			cout<<t<<"\n";
		}
		else{
			cin>>x;
			t+=x;//**
			t%=d;
			n++;
			a[n]=t;
			f[n][0]=t;
			for(int i=1;i<=20&&(n-(1<<(i-1)))>=0;++i){
				f[n][i]=max(f[n][i-1],f[n-(1<<(i-1))][i-1]);
			}
		}
	}
	return 0;
}
2025/1/16 20:24
加载中...