分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

luogu_1198 ?[JSOI2008]最大数

发布时间:2023-09-06 01:16责任编辑:沈小雨关键词:暂无标签
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring> ???using namespace std;long long n,mod,a[2000010],t,cnt,y;int Max(int a,int b){ ???if(a>=b)return a; ???else return b;}inline void update(int l,int r,int now,int v,int o){ ???if(l==now && r==now){a[o]=v; return;} ???if(l==r)return; ???int mid=(l+r)>>1; ???if(mid>=now)update(l,mid,now,v,o<<1); ???else update(mid+1,r,now,v,o<<1|1); ???a[o]=Max(a[o<<1],a[o<<1|1]);}inline int query(int l,int r,int L,int R,int o){ ???if(l>R || r<L)return -1; ???if(L<=l && r<=R)return a[o]; ???int mid=(l+r)>>1; ???int q1=query(l,mid,L,R,o<<1); ???int q2=query(mid+1,r,L,R,o<<1|1); ???if(q1==-1)return q2; ???if(q2==-1)return q1; ???return Max(q1,q2);}int main(){ ???long long k=0; ???scanf("%lld%lld",&n,&mod); ???while((1<<k)<n)k++; ???k=1<<k; ???while(n--){ ???????char x; ???????x=getchar(); ???????while(x!=‘A‘ && x!=‘Q‘)x=getchar(); ???????if(x==‘A‘){ ???????????scanf("%lld",&y); y=(y+t)%mod; ???????????cnt++; ???????????update(1,k,cnt,y,1); ???????} ???????else if(x==‘Q‘){ ???????????scanf("%lld",&y); ???????????t=query(1,k,cnt-y+1,cnt,1); ???????????printf("%lld\n",t); ???????} ???} ???return 0;}

  

luogu_1198 ?[JSOI2008]最大数

原文地址:http://www.cnblogs.com/codetogether/p/7642731.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved