裸的线段树...因为数组开小了而一直RE..浪费了好多时间..

--------------------------------------------------------------------------

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cctype>
#include<iostream>
#define rep(i,n) for(int i=0;i<n;i++)
#define clr(x,c) memset(x,c,sizeof(x))
using namespace std;
const int maxnode=800005;
const int inf=0x7fffffff;
int mod;
struct segmentTree {
int ql,qr,v,p,n;
int maxv[maxnode];
void init(int n) { this->n=n; }
int QUERY(int o,int l,int r) {
if(ql<=l && qr>=r) return maxv[o];
int mid=l+(r-l)/2,ans=-inf;
if(ql<=mid) ans=max(ans,QUERY(o*2,l,mid));
if(qr>mid) ans=max(ans,QUERY(o*2+1,mid+1,r));
return ans;
}
void UPDATE(int o,int l,int r) {
int mid=l+(r-l)/2;
if(l==r) maxv[o]=v;
else {
if(p<=mid) UPDATE(o*2,l,mid);
else UPDATE(o*2+1,mid+1,r);
maxv[o]=max(maxv[o*2],maxv[o*2+1]);
}
}
int query(int l,int r) {
ql=l; qr=r;
return QUERY(1,1,n);
}
void update(int i,int val) {
v=val; p=i;
UPDATE(1,1,n);
}
} st;
int main()
{
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
int n,ans=0,cnt=0,num;
scanf("%d%d",&n,&mod);
char c;
st.init(n);
while(n--) {
while(scanf("%c",&c) && !isupper(c));
scanf("%d",&num);
if(c=='Q') printf("%d\n",ans=st.query(cnt-num+1,cnt));
else st.update(++cnt,(num+ans)%mod);
}
return 0;
}

--------------------------------------------------------------------------

1012: [JSOI2008]最大数maxnumber

Time Limit: 3 Sec  Memory Limit: 162 MB
Submit: 4787  Solved: 2162
[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

5 100
A 96
Q 1
A 97
Q 1
Q 2

Sample Output

96
93
96

转载于:https://www.cnblogs.com/JSZX11556/p/4374990.html

BZOJ 1012: [JSOI2008]最大数maxnumber(线段树)相关推荐

  1. 1012: [JSOI2008]最大数maxnumber 线段树

    https://www.lydsy.com/JudgeOnline/problem.php?id=1012 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数 ...

  2. BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 4750  Solved: 2145 [Sub ...

  3. BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值

    这道题相对简单下面是题目: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 6542 Solve ...

  4. BZOJ 1012 [JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 5425  Solved: 2397 [Sub ...

  5. BZOJ 1012: [JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 11358  Solved: 4978 [Su ...

  6. 1012: [JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 10711  Solved: 4683 [Su ...

  7. BZOJ1012|JSOI最大数maxnumber|线段树

    Description 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度. 2. ...

  8. 【BZOJ】1012: [JSOI2008]最大数maxnumber 树状数组求区间最值

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1012 题意:维护一个数列,开始时没有数值,之后会有两种操作, Q L :查询数列末 ...

  9. 【BZOJ 1012】[JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Description 现在请求你维护一个数列,要求提供以下两种 ...

最新文章

  1. Centos7安装mariadb galera cluster数据库集群 详解
  2. SAP Spartacus Header区域的渲染逻辑
  3. spark应用程序_Sparklens:Spark应用程序优化工具
  4. Linq(03)基础之Orderby group-by
  5. python xlrd使用_python处理Excel xlrd的简单使用
  6. 电脑底部任务栏点不动_15个小技巧,让我的Windows电脑更好用了!
  7. 比反射更快:委托 第1部分
  8. 微服务架构·基础篇[转]
  9. android跑马灯代码,Android中实现跑马灯效果
  10. 服务器压力测试实现步骤,测试web性能时 做一个压力测试的四大步骤
  11. STM32 高级定时器 输出PWM波
  12. svn图标不显示的解决方案
  13. rto净化效率计算公式_rto废气处理原理
  14. C#使用Oxyplot绘制监控界面
  15. Day7 零基础python入门100天Udemy训练营-Hangman Game 继续学习import, if else, while loop, for loop
  16. 1W+字概括精髓,Pandas中必知必会50例
  17. 力技艺法道,工匠师圣仙
  18. bootstrap ajax - (se7en框架)
  19. centos7装机与基础配置
  20. 发现谁用 kill -9 关闭程序就开除!

热门文章

  1. 【Linux】一步一步学Linux——dirname命令(35)
  2. php dimage加上域名,PHP全功能无变形图片裁剪操作类与用法示例
  3. python编写格斗游戏_C语言实现的开源 2D 格斗游戏: Punch Kick
  4. C语言 指针 类型的用法大汇总(指针/引用/取值) *与
  5. muduo网络库学习(五)服务器监听类Acceptor及Tcp连接TcpConnection的建立与关闭
  6. 张朝阳:我什么都有,但我就是很痛苦
  7. 第一章 PX4-Pixhawk-程序编译过程解析
  8. GPU与CPU版本的矩阵乘法对比
  9. 8086汇编 贪吃蛇 源代码
  10. TCP滑动窗口和拥塞控制机制