博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1012 [JSOI2008]最大数maxnumber
阅读量:6272 次
发布时间:2019-06-22

本文共 1470 字,大约阅读时间需要 4 分钟。

题目:

单调栈水题。可以用lower_bound。

但输入不要char ch; cin>>ch。会TLE。(为什么?)

#include
#include
#include
#include
using namespace std;const int N=2e5+5;int n,m,mod,stack[N],a[N],top,lst;int main(){ scanf("%d%d",&m,&mod); char ch[5];int x; while(m--) { scanf("%s%d",ch,&x); if(ch[0]=='A') { (x+=lst)%=mod;a[++n]=x; while(top&&x>=a[stack[top]])top--; stack[++top]=n; } if(ch[0]=='Q') { int k=lower_bound(stack+1,stack+top+1,n-x+1)-stack; lst=a[stack[k]]; printf("%d\n",lst); } } return 0;}
lower_bound
#include
#include
#include
using namespace std;const int N=2e5+5;int n,m,mod,stack[N],ps[N],top,lst;int main(){ scanf("%d%d",&m,&mod); char ch[5];int x; while(m--) { scanf("%s%d",ch,&x); if(ch[0]=='A') { (x+=lst)%=mod; while(top&&x>=stack[top])top--; stack[++top]=x;ps[top]=++n; } if(ch[0]=='Q') { int l=1,r=top; while(l<=r) { int mid=((l+r)>>1); if(ps[mid]>n-x)lst=mid,r=mid-1; else l=mid+1; } lst=stack[lst]; printf("%d\n",lst); } } return 0;}

 

转载于:https://www.cnblogs.com/Narh/p/9248678.html

你可能感兴趣的文章
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>
spring boot集成mongodb最简单版
查看>>
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>