Description

现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。 2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是非负整数并且在长整范围内。注意:初始时数列是空的,没有一个数。

Input

第一行两个整数,M和D,其中M表示操作的个数(M <= 200,000),D如上文中所述,满足(0

Output

对于每一个查询操作,你应该按照顺序依次输出结果,每个结果占一行。

Sample Input

5 100A 96Q 1A 97Q 1Q 2

Sample Output

969396

HINT

Source


bzoj大水题,st表直接水过去。

代码:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int size=1000010;
int st[size][30];int main()
{
//  freopen("1012.in","r",stdin);
//  freopen("1012.out","w",stdout); int m,mod,n=0;scanf("%d%d",&m,&mod);int lastans=0;while(m--){char in[10];int a;scanf("%s%d",in,&a);switch(in[0]){case 'A':st[++n][0]=(a+lastans)%mod;for(int i=1;i<=log2(n);i++) st[n][i]=max(st[n][i-1],st[n-(1<<(i-1))][i-1]);/*  for(int i=n;i>=1;i--){for(int j=0;j<=log2(n);j++){printf("%d ",st[i][j]);}puts("");}*/break;case 'Q':a=n-a+1;int k=log2(n-a+1);lastans=max(st[n][k],st[a+(1<<k)-1][k]);printf("%d\n",lastans);break;}}return 0;
}

【bzoj1012】[JSOI2008]最大数maxnumber st表相关推荐

  1. BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值

    这道题相对简单下面是题目: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 6542 Solve ...

  2. bzoj1012: [JSOI2008]最大数maxnumber [单调队列]

    Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. ...

  3. 【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber

    一眼看题目吓了一跳:这TM不就是单调队列吗,200000又怎样,大不了我二分嘛 系统提示:成功开启 手残模式 开始瞎写: 1 #include <cstdio> 2 long long a ...

  4. BZOJ 1012: [JSOI2008]最大数maxnumber(线段树)

    裸的线段树...因为数组开小了而一直RE..浪费了好多时间.. -------------------------------------------------------------------- ...

  5. 1012: [JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 10711  Solved: 4683 [Su ...

  6. BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 4750  Solved: 2145 [Sub ...

  7. BZOJ 1012: [JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 11358  Solved: 4978 [Su ...

  8. BZOJ 1012 [JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 5425  Solved: 2397 [Sub ...

  9. 【BZOJ 1012】[JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Description 现在请求你维护一个数列,要求提供以下两种 ...

最新文章

  1. 博弈论经典算法(一)——对抗搜索与Alpha-Beta剪枝
  2. Firefox v5 正式版
  3. 计算机视觉编程——图像到图像的映射
  4. 公共方法-完整的for循环-for else
  5. vue动态切换css文件_vue实现样式之间的切换及vue动态样式的实现方法
  6. Exynos4412 内核移植(三)—— 内核启动过程分析
  7. 速修复!开源企业自动化软件 Apache OFBiz 出现严重的 RCE 漏洞
  8. 学习Java,真的可以月薪过万嘛?真实个人经历告诉你,记录了平时学习的内容以及学习过程中最真实的感受(四)
  9. hadoop配置历史服务器
  10. 素数筛普通筛法全解(C/C++)
  11. 计算机管理中打开移动硬盘磁盘必须格式化,Win10下移动硬盘无法打开提示需要格式化的三种解决方法...
  12. Jackson修改字段名和自定义命名策略
  13. python autohotkey_Python pyautogui.hotkey方法代码示例
  14. SQL SERVER 软件和安装步骤
  15. PCB layout常用走线线宽选择参考
  16. oracle调优 oracle培训
  17. 利用净现值(NPV)分析对比方案的可行性
  18. 技能梳理28@在oled上控制一条狗的奔跑
  19. php yield rest,yeild(pythonyield详解)
  20. QT 自定义分页控件

热门文章

  1. 淘宝双十二3.0|集成淘金币任务
  2. Android 通过源码解析 Fragment 启动过程
  3. POJ 1054 恼人的青蛙 [ 枚举+剪枝 ]
  4. java中的==、equals()、hashCode()源码分析(转载)
  5. 境内上市和境外上市区别
  6. [经验] WIN7 wpd filesystem volume driver设备无法启动解决办法
  7. android学习(十九) 使用无线连接设备(三) 通过P2P搜索网络服务
  8. AutoService注解无法生成META-INF文件
  9. 计算机系学生thinkbook,大学生笔记本电脑推荐,教你选对自己的ThinkBook13s
  10. 计算机电子简报怎么做,如何制作电子简报