题目传送门

这是一道单调栈的问题,单调栈维护所有数的最大值。

查询操作时只需要二分找答案即可,枚举栈内的数应该也不会超时。

code

/**************************************************************
Problem: 1012
User: yekehe
Language: C++
Result: Accepted
Time:304 ms
Memory:2384 kb
****************************************************************/ #include <cstdio>
using namespace std;
inline int read(){
char c;while(c=getchar(),(c<''||c>'')&&c!='-');int x=,y=;c=='-'?y=-:x=c-'';
while(c=getchar(),c>=''&&c<='')x=x*+c-'';return x*y;
}
int m,d,stuck[][],top,t,now;
char c;
int so(int l,int r,int x){
int mid;
while(l<r){
mid=(l+r)>>;
if(stuck[mid][]<=x)l=mid+;
else r=mid;
}
return l;
}
int main(){
m=read(),d=read();stuck[][]=2e9;
for(int i=;i<=m;i++){
c=getchar();
if(c=='A'){
int x=read();x=(x+t)%d;
while(stuck[top][]<x)
top--;
stuck[++top][]=x;
stuck[top][]=++now;
}
else {
int w=top,v=read();
w=so(,top,now-v);
printf("%d\n",stuck[w][]);
t=stuck[w][];
}
}
return ;
}

O(KM)_k为常数。

BZOJ1012_Maxnumber_KEY的更多相关文章

随机推荐

  1. Python 冒泡排序法分析

    冒泡排序法 def maopao(): array = [2,1,3,6,5,4] #确定一组需要排序的数值列表 for i in range(len(array)-1): #大循环次数=列表长度,但 ...

  2. BZOJ 3680: 吊打XXX (模拟退火)

    //yy:今天简单入门学了下ORZ 爬山算法:兔子朝着比现在高的地方跳去.它找到了不远处的最高山峰.但是这座山不一定是珠穆朗玛峰.这就是爬山算法,它不能保证局部最优值就是全局最优值. 模拟退火:兔子喝 ...

  3. Mac常备必用的软件-mac软件推荐

    目录 终端工具 iTerm2,做开发的都用它代替系统自带的“终端”,免费软件,官网直接下载即可. 文件比较工具 meld,开源免费的文件/文本比较工具. 安装方法:brew cask install ...

  4. springmvc小结(下)

    1.@ModelAttribute 1.给共享的数据设置model数据设置,贴在形参上,也可以贴在方法上,设置一个model的key值 2.当controller方法返回一个对象的时候,,缺省值会把当 ...

  5. focal loss和ohem

    公式推导:https://github.com/zimenglan-sysu-512/paper-note/blob/master/focal_loss.pdf 使用的代码:https://githu ...

  6. es6之decorator

    //decorator //第三方库为:core-decorators //以下为代码实例 { //decorator //修饰器是一个函数 //是修改一个行为 //修改一个类的行为 console. ...

  7. C# 控制台模拟序列化和反序列化

    序列化:将对象转换成二进制串的过程 反序列化:将序列化过程中产生的二进制串转换成对象的过程 作用:传输数据 using System; namespace WriteTextContent { [Se ...

  8. 安装mysql的时候提示1045错误的解决方法

    在安装mysql的时候提示1045错误,如图所示: 这种情况一般是之前卸载msyql的时候没有清理完一些文件之类的,导致给你提示存在安全问题,因此,只需要找到mysql一些系统的配置文件,并且将他们删 ...

  9. 第25章 串行FLASH文件系统FatFs

    25.1  文件系统 即使读者可能不了解文件系统,读者也一定对“文件”这个概念十分熟悉.数据在PC上是以文件的形式储存在磁盘中的,这些数据的形式一般为ASCII码或二进制形式.在上一章我们已经写好了Q ...

  10. Select Sort

    package com.syd.sort; /** * Description: * ClassName:SelectSort * Package:com.syd.sort * Date:2018/6 ...