【单调栈】Bzoj 1012: 最大数maxnumber
2015-12-29 19:06
295 查看
1012: [JSOI2008]最大数maxnumber
Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 6255 Solved: 2676
[Submit][Status][Discuss]
Description
现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。 2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是非负整数并且在长整范围内。注意:初始时数列是空的,没有一个数。Input
第一行两个整数,M和D,其中M表示操作的个数(M <= 200,000),D如上文中所述,满足(0Output
对于每一个查询操作,你应该按照顺序依次输出结果,每个结果占一行。Sample Input
5 100A 96
Q 1
A 97
Q 1
Q 2
Sample Output
9693
96
不小心水了一个单调栈过了。。(维护单调性二分)
CLJ高级做法:http://wjmzbmr.com/archives/jsoi2008_maximum_number_maxnumber_of/
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 5 6 #define maxn 200001 7 8 typedef long long ll; 9 10 using namespace std; 11 12 struct node{ 13 ll c; 14 int pos; 15 }sta[maxn]; 16 17 ll top=0; 18 19 inline ll in() 20 { 21 ll x=0;char ch=getchar(); 22 while(ch<'0'||ch>'9')ch=getchar(); 23 while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); 24 return x; 25 } 26 27 void add(ll num,int pos) 28 { 29 while(sta[top].c<=num&&top!=0)top--; 30 top++; 31 sta[top].c=num,sta[top].pos=pos; 32 } 33 34 ll ask(int r,int pos) 35 { 36 int l=1,an; 37 while(l<=r) 38 { 39 int mid=(l+r)>>1; 40 if(sta[mid].pos>=pos)r=mid-1,an=mid; 41 else l=mid+1; 42 } 43 return sta[an].c; 44 } 45 46 int main() 47 { 48 int n,nownum=0; 49 ll d,num,lastans=0; 50 char sb; 51 n=in(),d=in(); 52 for(int i=1;i<=n;i++) 53 { 54 sb=0; 55 while(sb!='A'&&sb!='Q')sb=getchar(); 56 num=in(); 57 if(sb=='Q')printf("%lld\n",lastans=ask(top,nownum-num+1)); 58 else add((num%d+lastans%d)%d,++nownum); 59 } 60 return 0; 61 }
View Code
ps:最近脑残各种小地方打错。。
是时候考试开始写对拍了。。
ps:初赛76简直了。。想想如果不是在HN而是ZJ而搞OI那早就以一种奇怪的方式结束OI生涯了。。而且错的貌似都是OI知识?(指针,容斥,catanlan什么的)。。感觉自己学的还是不是太扎实
相关文章推荐
- HDU1213 How Many Tables
- VMWare12 安装 OSX 10.10
- 临时表
- How to set date format to 24 hour
- 论测试的主要责任
- Unity中的Path对应各平台中的Path
- HDU 1251——Trie树
- 二叉树的几种遍历方法,包括递归和迭代
- “奋斗了18年才和你坐在一起喝咖啡”--读后感
- 关于作用域 & 框架的概念
- Custom Subscripting in Swift Tutorial
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
- 游标取数据库数据在swing下table中显示
- Visual Studio 类图功能Class Diagram
- <ASP.NET4 从入门到精通>学习笔记1
- phpcms V9 安装黄页模块后,注册为普通会员并登录,点立即免费入驻企业库出现白板
- 程序员读书之路
- Servlet基础(三) Servlet的多线程同步问题
- 【分块】bzoj3343: 教主的魔法
- nginx启动、重启、关闭