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的更多相关文章
随机推荐
- MapReduce编程中常用的字符操作
本文主要用于记录自己在编写mapreduce程序时常用的一些方法,后期会不断更新,用于自己复习和给新手一些帮助. 字符串操作 String str = " 12345"; // 字 ...
- linux 上部署tomcat的java web项目,会出现post提交request.request.getParameter()的得不到值的情况
有时候明明在windows上非常的正常,而在linux上就不正常了,在windows上post提交request.request.getParameter()有值,而在liunx上没有值. 我开始以为 ...
- JAVA中commons-collections-3.2.1.jar包是干什么用的?
类似C++中的Boost库,对Java容器类型和算法的补充
- Codeforces Round #437 (Div. 2)[A、B、C、E]
Codeforces Round #437 (Div. 2) codeforces 867 A. Between the Offices(水) 题意:已知白天所在地(晚上可能坐飞机飞往异地),问是否从 ...
- hdu-1792 A New Change Problem---数论&剩余系
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1792 题目大意: 给定A和B,A和B互质,求最大不能组合数,和不能组合数的个数. 解题思路: 由于g ...
- canvas的两个方法说明
今天在用canvas的时候,发现有两个方法比较陌生,在此记录详细说明一下. (1)文本绘制的一个方法 canvas.drawTextOnPath(text, path, hOffset, vOffse ...
- CF13C Sequence
嘟嘟嘟 偶然看到的这道题,觉得有点意思,就做了. 首先题里说修改后的数列只能出现修改前的数,那么状态之间的转移也就之可能在这些数之间. 令f[i][j]表示第 i 个数改成原序列第 j 小的数时的最小 ...
- PHP时间戳和日期相互转换(转载)
在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳可以使用strtotime()函数实现,下面我来给大家举例说明. 1.php中时间转换函数 strtotime ...
- 15、SpringBoot-CRUD错误处理机制(2)
二.如何定制错误响应 1).如何定义错误处理页面 1.1.有模板引擎的情况下:error/状态码; [将错误页面命名为 错误状态码.html 放在模板引擎文件夹里面的error文件夹下 ...
- 匹配iPhoneX
1.header中加一下标签 <meta name="viewport" content="width=device-width,initial-scale=1,m ...