问题描述

LG1198

BZOJ1012


题解

我们把所有操作离线,设一共有\(n\)个插入操作。

于是提前建立\(n\)个数,全部设为\(-INF\)

接着逐个处理操作即可。


\(\mathrm{Code}\)

#include<bits/stdc++.h>
using namespace std; #define int long long template <typename Tp>
void read(Tp &x){
x=0;char ch=1;int fh;
while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
if(ch=='-'){
fh=-1;ch=getchar();
}
else fh=1;
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+ch-'0';
ch=getchar();
}
x*=fh;
} const int maxn=1000000+7;
const int INF=0x3f3f3f3f3f3f3f3fLL; int T,mod,n;
int cz[maxn],ext[maxn];
int nowt[maxn];
void fr(int &x){
char ch=1;
while(ch!='Q'&&ch!='A') ch=getchar();
x=(ch=='A')+1;
} int mx[maxn<<2];
#define lfc (x<<1)
#define rgc ((x<<1)|1)
#define mid ((l+r)>>1) void pushup(int x){
mx[x]=max(mx[lfc],mx[rgc]);
} void build(int x,int l,int r){
if(l==r){
mx[x]=-INF;return;
}
build(lfc,l,mid);build(rgc,mid+1,r);
pushup(x);
} int L,R,need; void change(int x,int l,int r){
if(l==r){
mx[x]=need;return;
}
if(L<=mid) change(lfc,l,mid);
else change(rgc,mid+1,r);
pushup(x);
} int query(int x,int l,int r){
if(r<L||l>R) return -INF;
if(L<=l&&r<=R) return mx[x];
return max(query(lfc,l,mid),query(rgc,mid+1,r));
} int las; signed main(){
read(T);read(mod);
for(int i=1;i<=T;i++){
fr(cz[i]);read(ext[i]);
if(cz[i]==2) ++n;
nowt[i]=n;
}
build(1,1,n);
for(int i=1;i<=T;i++){
if(cz[i]==1){
L=nowt[i]-ext[i]+1,R=nowt[i];
las=query(1,1,n);
printf("%lld\n",las);
}
else{
L=nowt[i],need=(ext[i]+las)%mod;
change(1,1,n);
}
}
return 0;
}

最新文章

  1. python中的参数问题
  2. FCN网络的训练——以SIFT-Flow 数据集为例
  3. 初试FitNesse
  4. Codeforces Round #260 (Div. 2) C
  5. kuangbin_ShortPath D (POJ 3268)
  6. SQL server 为多个表添加新的列
  7. 【转载】常用Maven插件介绍
  8. 代理模式及其在spring与struts2中的体现
  9. ajax 第四步
  10. C# 汉语转拼音
  11. python---random模块使用详解
  12. Java并发编程之显式锁机制
  13. c# 制作正方形图片
  14. MODBUS协议解析中常用的转换帮助类(C#)
  15. python主流测试框架的简介
  16. CMOS Sensor的调试经验分享【转】
  17. Windows10系统网络连接问题
  18. Ext Js 6+ 如何引入dashboard模版
  19. docker 进程监控 Dumb-Init进程信号处理 --转自https://blog.csdn.net/tiger435/article/details/54971929
  20. 20135316Linux内核学习笔记第六周

热门文章

  1. Apex 企业设计模式
  2. 正睿暑期培训day4考试
  3. Flutter基础系列之混合开发(二)
  4. (三十九)golang--反序列化
  5. pywinauto教程2
  6. 记一次内存无法回收导致频繁fullgc机器假死的思路
  7. C#面试基础知识点:值类型和引用类型(1)(填坑文)
  8. PIE调用Python获得彩色直方图
  9. GALAXY OJ NOIP2019联合测试1-总结
  10. swift中文版和网站