【bzoj1012】[JSOI2008]最大数maxnumber st表
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表相关推荐
- BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值
这道题相对简单下面是题目: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 6542 Solve ...
- bzoj1012: [JSOI2008]最大数maxnumber [单调队列]
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. ...
- 【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber
一眼看题目吓了一跳:这TM不就是单调队列吗,200000又怎样,大不了我二分嘛 系统提示:成功开启 手残模式 开始瞎写: 1 #include <cstdio> 2 long long a ...
- BZOJ 1012: [JSOI2008]最大数maxnumber(线段树)
裸的线段树...因为数组开小了而一直RE..浪费了好多时间.. -------------------------------------------------------------------- ...
- 1012: [JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 10711 Solved: 4683 [Su ...
- BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 4750 Solved: 2145 [Sub ...
- BZOJ 1012: [JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 11358 Solved: 4978 [Su ...
- BZOJ 1012 [JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 5425 Solved: 2397 [Sub ...
- 【BZOJ 1012】[JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Description 现在请求你维护一个数列,要求提供以下两种 ...
最新文章
- 博弈论经典算法(一)——对抗搜索与Alpha-Beta剪枝
- Firefox v5 正式版
- 计算机视觉编程——图像到图像的映射
- 公共方法-完整的for循环-for else
- vue动态切换css文件_vue实现样式之间的切换及vue动态样式的实现方法
- Exynos4412 内核移植(三)—— 内核启动过程分析
- 速修复!开源企业自动化软件 Apache OFBiz 出现严重的 RCE 漏洞
- 学习Java,真的可以月薪过万嘛?真实个人经历告诉你,记录了平时学习的内容以及学习过程中最真实的感受(四)
- hadoop配置历史服务器
- 素数筛普通筛法全解(C/C++)
- 计算机管理中打开移动硬盘磁盘必须格式化,Win10下移动硬盘无法打开提示需要格式化的三种解决方法...
- Jackson修改字段名和自定义命名策略
- python autohotkey_Python pyautogui.hotkey方法代码示例
- SQL SERVER 软件和安装步骤
- PCB layout常用走线线宽选择参考
- oracle调优 oracle培训
- 利用净现值(NPV)分析对比方案的可行性
- 技能梳理28@在oled上控制一条狗的奔跑
- php yield rest,yeild(pythonyield详解)
- QT 自定义分页控件
热门文章
- 淘宝双十二3.0|集成淘金币任务
- Android 通过源码解析 Fragment 启动过程
- POJ 1054 恼人的青蛙 [ 枚举+剪枝 ]
- java中的==、equals()、hashCode()源码分析(转载)
- 境内上市和境外上市区别
- [经验] WIN7 wpd filesystem volume driver设备无法启动解决办法
- android学习(十九) 使用无线连接设备(三) 通过P2P搜索网络服务
- AutoService注解无法生成META-INF文件
- 计算机系学生thinkbook,大学生笔记本电脑推荐,教你选对自己的ThinkBook13s
- 计算机电子简报怎么做,如何制作电子简报