BZOJ1012_Maxnumber_KEY
这是一道单调栈的问题,单调栈维护所有数的最大值。
查询操作时只需要二分找答案即可,枚举栈内的数应该也不会超时。
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的更多相关文章
随机推荐
- 名词后变为复数+s,或者+es等怎么读
, 以ce,se,ze, (d)ge等结尾的词 加 -s 读 /iz/ license-licenses, office offices 最佳答案1: 当名词后加-e(-es)变成复数,动词单数第三人 ...
- ZT 初始化 const 成员和引用类型成员(C++)
初始化 const 成员和引用类型成员(C++) 初始化 const 成员和引用类型成员的问题,在 C++ 教材中讲述初始化列表的章节应该都有讲过,但是因为平时用得少,所以可能有不少人没注意到.待到用 ...
- hdu1113 Word Amalgamation(详解--map和string的运用)
版权声明:本文为博主原创文章.未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/35338617 转载请注明出 ...
- poj 1159 Palindrome 【LCS】
任意门:http://poj.org/problem?id=1159 解题思路: LCS + 滚动数组 AC code: #include <cstdio> #include <io ...
- MyBatis框架(4)全局文件
本次全部学习内容:MyBatisLearning 全局配置文件(本次案例中):
- List环形双向链表
实现一个环形的双向链表,链表的每个节点都保存三个信息,当前节点的值value,前一个节点的指针prev,后一个节点的指针next.因为是环形的,所以最后一个节点的next指向第一个节点,而第一个节点的 ...
- Sublime EMMET使用技巧
1.使用tab键生成标签: 2.使用+创建兄弟元素,使用>创建子元素,使用+号还可以创建元素基本结构: 3.使用*号后面跟数字可以重复创建相同元素: 4.使用^返回上一级元素: 5.使用()进行 ...
- php面试重要知识点,面试题
1.什么是引用变量,用什么符号定义引用变量? 概念:用不同的名称引用同一个变量的内容:用&符号定义. 例如: $a = range(0,100); $b = &$a; $b = ran ...
- firefox下载文件弹出框之终极解决方案-vbs模拟键盘操作
由于近期一直被firefox的保存文件弹出框困扰,摸索尝试过几种方法,已有的方法可以跑通但是对对效果不太满意,因此一直在寻找合适的解决办法. 最近发现了也可以通过VBS来处理弹出框,速度也不错,其原理 ...
- 使用CSV Data Set Config实现参数化登录
在使用Jemeter做压力测试的时候,往往需要参数化用户名,密码以到达到多用户使用不同的用户名密码登录的目的.这个时候我们就可以使用CSV Data Set Config实现参数化登录: 首先通过Te ...