bzoj 1012 [JSOI2008]最大数maxnumber
来源:互联网 发布:三合一企业网站源码 编辑:程序博客网 时间:2024/05/21 16:54
裸的线段树。。
#include <cstdio>using namespace std;int m,d;struct VV{ int l,r; int ma;}tr[800005];inline int max(int i,int j) {return i>j?i:j;}void build_tr(int l,int r,int k){ tr[k].l=l;tr[k].r=r; if (l==r) return ; int mid=(l+r)>>1; tr[k].ma=-1; build_tr(l,mid,k<<1); build_tr(mid+1,r,(k<<1)+1); return ;}void insert(int k,int we,int ans){ int l=tr[k].l,r=tr[k].r; if (l==r) { tr[k].ma=ans; return; } int mid=(l+r)>>1; if (we<=mid) insert(k<<1,we,ans); else insert((k<<1)+1,we,ans); tr[k].ma=max(tr[k<<1].ma,tr[k<<1|1].ma); return ;}int ask(int k,int x,int y){ int l=tr[k].l,r=tr[k].r; if (y<l||x>r) return -1; if (x<=l&&y>=r) { return tr[k].ma; } int mid=(l+r)>>1; int ma=0; if (y>mid) ma=max(ma,ask(k<<1|1,x,y)); if (x<=mid) ma=max(ma,ask(k<<1,x,y)); return ma;}int main(){ register int i; scanf("%d %d",&m,&d); build_tr(1,m,1); int qu=0;int le=0; for (i=1;i<=m;i++) { char c='1';int x; while(c!='A'&&c!='Q') c=getchar(); scanf("%d",&x); if (c=='A') insert(1,++le,(qu+x)%d); if (c=='Q') printf("%d\n",qu=ask(1,le-x+1,le)); } return 0;}
0 0
- BZOJ 1012: [JSOI2008]最大数maxnumber
- BZOJ 1012 [JSOI2008]最大数maxnumber
- BZOJ 1012: [JSOI2008]最大数maxnumber
- [BZOJ 1012][JSOI2008]最大数maxnumber
- BZOJ 1012: [JSOI2008]最大数maxnumber
- bzoj 1012: [JSOI2008]最大数maxnumber 二分
- bzoj 1012 [JSOI2008]最大数maxnumber
- [BZOJ 1012] [JSOI2008] 最大数maxnumber
- 【BZOJ 1012】[JSOI2008]最大数maxnumber
- BZOJ 1012:[JSOI2008]最大数 maxnumber
- bzoj 1012 [JSOI2008]最大数maxnumber
- 【BZOJ 1012】 [JSOI2008]最大数maxnumber
- bzoj 1012 [JSOI2008]最大数maxnumber
- BZOJ 1012 [JSOI2008]最大数maxnumber
- BZOJ 1012 [JSOI2008]最大数maxnumber
- BZOJ 1012: [JSOI2008]最大数maxnumber
- BZOJ 1012: [JSOI2008]最大数maxnumber
- bzoj 1012: [JSOI2008]最大数maxnumber
- JAVA语言跨平台特性
- JAVA学习之LinkedList
- 有符号数和无符号数
- JavaScript中URL编码方法
- android 反汇编
- bzoj 1012 [JSOI2008]最大数maxnumber
- about log4j
- 线性时间排序
- 初入职场新人一定要知道的五大晋升秘诀
- ACM-ICPC-ChinaFinal-H题
- 51nod-1366:贫富差距
- Linux_Shell 具有一定规律的日志提取 指定字段
- JAVA环境搭建配置
- L1-018. 大笨钟