BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞
1012: [JSOI2008]最大数maxnumber
Time Limit: 3 Sec Memory Limit: 162 MB
Submit: 4750 Solved: 2145
[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如上文中所述,满足(0
Output
对于每一个查询操作,你应该按照顺序依次输出结果,每个结果占一行。
Sample Input
A 96
Q 1
A 97
Q 1
Q 2
Sample Output
93
96
HINT
题解:
这道题就是裸的rmq题目,我推荐一种单调队列的搞法!
搞搞搞,看代码就知道肿么做啦~
//qscqesze #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <queue> #include <typeinfo> #include <fstream> #include <map> typedef long long ll; using namespace std; //freopen("D.in","r",stdin); //freopen("D.out","w",stdout); #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define maxn 250001 #define eps 1e-9 const int inf=0x7fffffff; //无限大 //************************************************************************************** int a[maxn],max_num[maxn],t=0,ans=0; int main() {int n,d;scanf("%d%d",&n,&d);char ch[3];int g;while(n--){scanf("%s%d",ch,&g);if(ch[0]=='A'){a[++t]=(ans+g)%d;for(int i=t;i;i--){if(max_num[i]<a[t])max_num[i]=a[t];elsebreak;}}else{ans=max_num[t-g+1];printf("%d\n",ans);}}return 0; }
转载于:https://www.cnblogs.com/qscqesze/p/4349230.html
BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞相关推荐
- BZOJ 1012: [JSOI2008]最大数maxnumber(线段树)
裸的线段树...因为数组开小了而一直RE..浪费了好多时间.. -------------------------------------------------------------------- ...
- 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 Submit: 11358 Solved: 4978 [Su ...
- bzoj1012: [JSOI2008]最大数maxnumber [单调队列]
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. ...
- 1012: [JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 10711 Solved: 4683 [Su ...
- 【BZOJ】1012: [JSOI2008]最大数maxnumber 树状数组求区间最值
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1012 题意:维护一个数列,开始时没有数值,之后会有两种操作, Q L :查询数列末 ...
- 1012: [JSOI2008]最大数maxnumber 线段树
https://www.lydsy.com/JudgeOnline/problem.php?id=1012 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数 ...
- 【BZOJ 1012】[JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Description 现在请求你维护一个数列,要求提供以下两种 ...
- BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值
这道题相对简单下面是题目: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 6542 Solve ...
最新文章
- Error: could not find function ... in R
- [转]安装和使用JD-Eclipse插件
- 如何解决Office2016安装时提示:错误1406。安装程序无法将值写入注册表项\.xlsx
- MYSQL中 ENUM 类型
- 学java教程之this关键字
- 机器学习如何计算特征的重要性_干货 :机器学习中的特征工程总结
- MySQL入门-3:安装与客户端工具
- 最长配对(51Nod-2494)
- 支付宝当前最新版集成2.1.2版本
- ApacheCN DevOps 译文集 20211227 更新
- 伴生对象-apply方法
- 打开与关闭Linux防火墙
- Pannellum:实例之自定义热点信息
- android drawable-hdpi 分辨率,android – 设置可用于不同分辨率的drawable文件夹
- 电子教室软件 android,超越电子教室
- java基本数据类型范围
- 2020年全球及中国电源管理芯片(PMIC)行业发展现状及市场竞争格局分析,全球市场集中,德州仪器市占第一「图」
- 服务器怎么多开虚拟机,服务器多开虚拟机操作系统
- OpenWRT设置ADGuardHome+小喵咪
- 佩服的一个阿里 P9 大佬,离职了...
热门文章
- Vim取消查找后的高亮提示,:nohl或者:noh什么的都不管用,来一个简单粗暴方法
- 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
- 求两数最大公约数,最小公倍数-Java
- 1.2.1 计算机系统的组成(硬件+软件)
- C#语法:正则表达式 --Trim()的实现
- 算法练习day16——190404(KMP算法)
- mysql倍增表的内容,mysql - DATEDIFF不会在触发器内倍增 - SO中文参考 - www.soinside.com...
- Cpp 对象模型探索 / 不能被继承的类
- TCP/IP / 状态转换图
- 数据结构与算法 / 哈希算法