【解题思路】

  强制在线线段树/树状数组,没什么好说的。。复杂度O(mlog2m)(线段树)或O(mlog22m)(树状数组)。

【参考代码】

(还naive的时候写的zkw真是翔。。)

 #include<cstdio>
#include<cstring>
#include<algorithm>
#define REP(I,start,end) for(int I=start;I<=end;I++)
#define FNI -2147483647-1
using namespace std;
struct zkw_LineTree
{
int startPoint,savTree[];
inline void Clear(int n)
{
startPoint=;
while(startPoint<n)
startPoint<<=;
REP(i,,startPoint+n-)
savTree[i]=FNI;
}
inline void Change(int place,int delta)
{
int p=startPoint+place-;
while(p)
{
savTree[p]=max(savTree[p],delta);
p>>=;
}
}
inline int Query(int left,int right)
{
int l=startPoint+left-,r=startPoint+right-,result=FNI;
bool onRight=false,onLeft=false;
while(l+<r)
{
if(l&)
{
if(!onRight)
{
onRight=true;
result=max(result,savTree[l]);
}
}
else
if(onRight)
result=max(result,savTree[l+]);
l>>=;
if(r&)
{
if(onLeft)
result=max(result,savTree[r-]);
}
else
if(!onLeft)
{
onLeft=true;
result=max(result,savTree[r]);
}
r>>=;
}
if(!onRight)
result=max(result,savTree[l]);
if(!onLeft)
result=max(result,savTree[r]);
return result;
}
}LineTree;
int n,Claris;
int main()
{
scanf("%d%d",&n,&Claris);
int len=,ans=;
LineTree.Clear(n);
while(n--)
{
char ch=getchar();
while(ch!='A'&&ch!='Q')
ch=getchar();
int t;
scanf("%d",&t);
if(ch=='A')
LineTree.Change(++len,(ans+t)%Claris);
else
{
ans=LineTree.Query(len-t+,len);
printf("%d\n",ans);
}
}
return ;
}

bzoj1012题解的更多相关文章

  1. LG1198/BZOJ1012 「JSOI2008」最大数 线段树+离线

    问题描述 LG1198 BZOJ1012 题解 我们把所有操作离线,设一共有\(n\)个插入操作. 于是提前建立\(n\)个数,全部设为\(-INF\) 接着逐个处理操作即可. \(\mathrm{C ...

  2. BZOJ1012[JSOI2008]最大数maxnumber 题解

    题目大意: 维护一个数列,有两种操作:1. 查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2.插入操作:将n加上t,其中t是最近一次查询操作的答案(如果还未执行 ...

  3. BZOJ1012:[JSOI2008]最大数——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=1012 https://www.luogu.org/problemnew/show/P1198 现在 ...

  4. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  5. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  6. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  7. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  8. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  9. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

随机推荐

  1. SqlServer 将表里面的值赋给变量

    @@c_beiz varchar(500) select top 1 @c_beiz = c_beiz from g_billd_qh_tmp where u_id=''+@uid+'' and io ...

  2. pandas for python

    http://pandas.pydata.org/pandas-docs/stable/user_guide/index.html 不算太难,需要拿一本线性代数看看矩阵原理即可.重点在于考虑如何运用, ...

  3. AJAX(包括跨域)post请求封装

    function ajaxPost(dataUrl, parameter, callback, bef_callback, com_callback, err_callback) { $.ajax({ ...

  4. Shiro学习(1)简介

    1.1  简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比spring Security,可能没有Spring Securi ...

  5. Android中的onWindowFocusChanged()方法详解

    Android中获取手机屏幕的高度和宽度,我们知道在onCreate方法中获取到的值都是为0的,有人说可以在onClick方法中获取值,这个也是个方法 ,但在onWindowFocusChanged方 ...

  6. js监听input输入字符变化

    <p class="text-input"> <input type="text" id="username" autoC ...

  7. idea整合springboot,访问templates下html资源问题

    1.pom.xml文件中要引入themyleaf 2.在application.properties文件中加入 #拼接html前后缀spring.resources.static-locations= ...

  8. opencv打开摄像头并新建窗口显示

    几个程序使用的基本函数如下: ******************************************************************* cvCreateCameraCap ...

  9. mkdir: cannot create directory ‘/soft/hadoop-2.7.3/logs’: Permission denied问题

    启动hadoop时,报错“mkdir: cannot create directory ‘/soft/hadoop-2.7.3/logs’: Permission denied” 注:/soft/ha ...

  10. (转)区别TextBlock和Label

    TextBlock和Label都是用来显示少量数据的.好多文章对Label存在的描述都是它允许使用"快速获取"."快速获取"就是允许你用Alt加上其它的按键快速 ...