博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ1012:[JSOI2008]最大数——题解
阅读量:6932 次
发布时间:2019-06-27

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

现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L

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

倒着来st表即可。

(当然平衡树啊动态线段树啊分块啊都能做,选一个最简单的做。)

洛谷数据很恶心,如果你TLE了不妨与main函数对比一下。

#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=4e5+5;const int B=18;inline int read(){ int X=0,w=0;char ch=0; while(!isdigit(ch)){w|=ch=='-';ch=getchar();} while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar(); return w?-X:X;}ll dp[N][B+4];int lg[N];char s[101];inline ll qry(int l,int r){ if(l>r)return 0; int h=lg[r-l+1]; return max(dp[r][h],dp[l+(1<

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客: +

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/8994360.html

你可能感兴趣的文章
[bzoj3156]防御准备
查看>>
POJ-2792-集合加法
查看>>
验证的概述
查看>>
关于网页安全输出隐藏
查看>>
javascript内存泄漏
查看>>
Maya批量传递UV插件
查看>>
windows 地址空间分配
查看>>
install Maven
查看>>
android Thread和Service的区别
查看>>
前端交流会
查看>>
ASP.NET Boilerplate 邮件类使用
查看>>
C++实现快速排序
查看>>
C# 把一个文件夹下所有文件删除
查看>>
九度 1365 贝多芬第九交响曲
查看>>
如何在Azure环境里做好信息传递可扩展性经验分享
查看>>
2016-6-6
查看>>
vuex 使用
查看>>
java第三周作业
查看>>
回调函数
查看>>
ASCII 码表
查看>>