【题解】[P1198 JSOI2008]最大数

正难则反,意想不到。

这道题是动态让你维护一个数列,已经在数列里面的数据不做改变,每次在最后加上一个数,强制在线。

既然正着做很难,考虑如果时间倒流,不会改变之前的维护的任何数据结构。于是我们反着维护一个St表。

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<bitset>
#include<vector>
#include<map>
#include<ctime>
#include<cstdlib>
#include<set>
#include<bitset>
#include<stack>
#include<list>
#include<cmath>
using namespace std;
#define RP(t,a,b) for(register int (t)=(a),edd_=(b);t<=edd_;++t)
#define DRP(t,a,b) for(register int (t)=(a),edd_=(b);t>=edd_;--t)
#define ERP(t,a) for(int t=head[a];t;t=e[t].to)
#define Max(a,b) ((a)<(b)?(b):(a))
#define Min(a,b) ((a)<(b)?(a):(b))
#define TMP template<class ccf>
typedef long long ll;
TMP inline ccf qr(ccf k){
char c=getchar();
ccf x=0;
int q=1;
while(c<48||c>57)
q=c==45?-1:q,c=getchar();
while(c>=48&&c<=57)
x=x*10+c-48,c=getchar();
if(q==-1)
x=-x;
return x;
} const int maxn=2e5+15;
int n;
int top;
ll data[maxn];
ll ans[maxn][25];
int lg[maxn];
ll t1,t2,t3;
char c;
int cnt;
ll mod;
ll lastans; inline void init(){
n=qr(1);
mod=qr(1ll);
memset(ans,0xcc,sizeof ans);
RP(t,1,n+5){
lg[t]=lg[t-1];
if((1<<(lg[t]+1))==t)
lg[t]++;
}
RP(t,1,n){
cin>>c;
if(c=='A'){
data[top+1]=(qr(1ll)%mod+lastans%mod)%mod;
++top;
ans[top][0]=data[top];
RP(k,1,lg[top])
ans[top][k]=Max(ans[top][k-1],ans[top-(1<<(k-1))][k-1]);
}
else{
t1=qr(1);
lastans=Max(ans[top][lg[t1]],ans[top-t1+(1<<lg[t1])][lg[t1]]);
printf("%lld\n",lastans);
}
}
} int main(){
#ifndef ONLINE_JUDGE
freopen("in.in","r",stdin);
freopen("out.out","w",stdout);
#endif
init();
return 0;
}

最新文章

  1. yum 保存下载包
  2. JS 基础 入门
  3. Hadoop 2.5.2 eclipse plugin 编译 win7 集成
  4. 修改datagridview中其中一列的值
  5. JDicom使用指南
  6. noip2014普及组 比例简化
  7. Django:快速搭建简单的Blog
  8. POJ 2823
  9. C#开发漂亮的数字时钟
  10. Android软件开发之获取通讯录联系人信息
  11. iOS 集合的深复制与浅复制
  12. iOS 如何随意的穿插跳跃,push来pop去
  13. 《JAVASCRIPT高级程序设计》第一章
  14. Air Raid
  15. SSH免密码登录Linux服务器
  16. nginx 提示the &quot;ssl&quot; directive is deprecated, use the &quot;listen ... ssl&quot; directive instead
  17. MySQL--Skip GTID CAP
  18. asp:LinkBtton PostBackUrl 中文乱码
  19. Eclipse之父、《设计模式》作者、Junit作者之Erich Gamma
  20. $.ajax dataType设置为json 回调函数不执行

热门文章

  1. Implement Trie (Prefix Tree) - LeetCode
  2. HTTP 状态消息 [转]
  3. Swagger2接口注释参数使用数组
  4. js 面试的坑:变量提升
  5. Learn How To Attach PL/SQL Library In Oracle Forms
  6. sencha toucha获取 constructor中的数据
  7. mongodb文档的CRUD
  8. mbr 备份
  9. Vue 响应式数据说明
  10. Maven零散笔记——配置Nexus