救救孩子吧qaq

P1198 [JSOI2008] 最大数

好的我知道qaq 爆long long了
by 良辰、 @ 2019-02-17 09:35:59


给你改了,AC ```cpp #include<bits/stdc++.h> using namespace std; const long long inf=-2147483647; const long long maxn=800005; long long n,cnt; long long tree[maxn]; long long d,m,t; char x[2]; void build(long long s,long long k,long long o,long long l,long long r){ if(l==r){ tree[o]=k; return; } long long mid=(l+r)>>1; if(mid>=s) build(s,k,o<<1,l,mid); if(mid<s) build(s,k,o<<1|1,mid+1,r); tree[o]=max(tree[o<<1],tree[o<<1|1])%d; } long long ask(long long ll,long long rr,long long o,long long l,long long r){ if(ll<=l&&rr>=r) return tree[o]; long long mid=(l+r)>>1; if(mid>=rr) return ask(ll,rr,o<<1,l,mid); if(mid<ll) return ask(ll,rr,o<<1|1,mid+1,r); tree[o]=max(tree[o<<1],tree[o<<1|1])%d; return max(ask(ll,mid,o<<1,l,mid),ask(mid+1,rr,o<<1|1,mid+1,r)); } int main() { scanf("%lld%lld",&n,&d); for(long long i=1;i<=n;i++){ scanf("%s %lld",&x,&m); if(x[0]=='A'){ build(cnt+1,(m+t)%d,1,1,n); cnt++; } else{ if(m==0) t=0; else t=ask(cnt-m+1,cnt,1,1,n)%d; printf("%lld\n",t); } } return 0; } ```
by Unaccepted @ 2019-02-17 09:38:25


咕咕咕
by 浅梦墨汐 @ 2019-02-17 15:24:29


~~**咕咕咕**~~
by Unaccepted @ 2019-02-19 14:10:25


|