社区讨论
第九个点有毒吧,,,
P1198[JSOI2008] 最大数参与者 6已保存回复 12
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 12 条
- 当前快照
- 1 份
- 快照标识符
- @mi6n3cik
- 此快照首次捕获于
- 2025/11/20 07:34 4 个月前
- 此快照最后确认于
- 2025/11/20 08:25 4 个月前
永久MLE,,,
CPP#include<iostream>
#include<cstdio>
#include<cstring>
#define mid (l+r)/2
#define lc (o<<1)
#define rc (o<<1|1)
using namespace std;
int a[800010];
char cc[2];
int mod,n,m;
int x,t;
void change(int o,int l,int r,int id,int xx)
{
if(l==r&&l==id)
{
a[o]=xx;
return;
}
if(id<=mid) change(lc,l,mid,id,xx);
else change(rc,mid+1,r,id,xx);
a[o]=max(a[lc],a[rc]);
}
int quer(int o,int l,int r,int ll,int rr)
{
if(ll<=l&&r<=rr) return a[o];
int hh=0;
if(ll<=mid) hh=max(hh,quer(lc,l,mid,ll,rr));
if(rr>mid) hh=max(hh,quer(rc,mid+1,r,ll,rr));
return hh;
}
int main()
{
freopen("2.in","r",stdin);
freopen("2.out","w",stdout);
scanf("%d%d",&m,&mod);
memset(a,-0x7f,sizeof(a));
for(int i=1;i<=m;i++)
{
scanf("%s",cc);
if(cc[0]=='A')
{
n++;
scanf("%d",&x);
change(1,1,200000,n,(t+x)%mod);
}
else
{
scanf("%d",&x);
x=n-x+1;
t=quer(1,1,200000,x,n);
printf("%d\n",t);
}
}
return 0;
}
回复
共 12 条回复,欢迎继续交流。
正在加载回复...