BZOJ1012 [JSOI2008]最大数maxnumber
2018-01-10 17:19
483 查看
单调栈存储最大值位置。
由于单调下降所以查找第一个大于当前查询位置的数即可。
#include<bits/stdc++.h> using namespace std; int cnt,a[200005],h[200005],top,ans; int main() { int m,d;char s[3]; scanf("%d%d",&m,&d); for(int i=1;i<=m;++i) { scanf("%s",s); if(s[0]=='Q') { int l;scanf("%d",&l); printf("%d\n",ans=a[h[lower_bound(h+1,h+1+top,cnt-l+1)-h]]); } else { cnt++; scanf("%d",&a[cnt]); a[cnt]+=ans;a[cnt]%=d; while(top&&a[cnt]>a[h[top]])top--; h[++top]=cnt; } } return 0; }
相关文章推荐
- bzoj1012: [JSOI2008]最大数maxnumber(线段树+假装增点)
- BZOJ 1012: [JSOI2008]最大数maxnumber
- bzoj 1012 [JSOI2008]最大数maxnumber
- BZOJ 1012 [JSOI2008]最大数maxnumber
- 【bzoj1012】[JSOI2008]最大数maxnumber
- BZOJ 1012: [JSOI2008]最大数maxnumber
- 【BZOJ1012】【JSOI2008】最大数maxnumber(单调栈+二分)
- 【BZOJ】1012: [JSOI2008]最大数maxnumber(树状数组+rmq)
- BZOJ1012: [JSOI2008]最大数maxnumber(单调栈)
- BZOJ 题目1012: [JSOI2008]最大数maxnumber(线段树)
- [bzoj1012] [JSOI2008]最大数maxnumber (单调队列)
- 【bzoj 1012】[JSOI2008]最大数maxnumber(线段树||st表)
- BZOJ 1012 [JSOI2008] 最大数 maxnumber 题解&代码
- bzoj1012: [JSOI2008]最大数maxnumber(线段树)
- [BZOJ] 1012: [JSOI2008]最大数maxnumber
- 【BZOJ】1012 [JSOI2008] 最大数maxnumber
- BZOJ 1012: [JSOI2008]最大数maxnumber
- BZOJ 1012[JSOI2008]最大数maxnumber (线段树解法)
- bzoj1012: [JSOI2008]最大数maxnumber
- BZOJ 1012 JSOI 2008 最大数 maxnumber 线段树水题