传送门
思路:比较裸的线段树,单点修改区间查询,树状数组应该也可以做,不过上来CE不能忍(╯‵□′)╯︵┻━┻,最后发现read不能定义数组?只好改成orz了
代码:

/**************************************************************Problem: 1012User: xiaoyimiLanguage: C++Result: AcceptedTime:900 msMemory:10652 kb
****************************************************************/#include<cstring>
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define LL long long
using namespace std;
LL d,t;
int m,n,l,r;
LL orz[200001][2],tree[800010];
inline void update(LL x,int root,int begin,int end)
{if (begin==end) {tree[root]=x;return;}int mid=(begin+end)/2;if (l<=mid) update(x,root*2,begin,mid);else update(x,root*2+1,mid+1,end);tree[root]=max(tree[root*2],tree[root*2+1]);
}
inline LL get(int root,int begin,int end)
{if (l<=begin&&end<=r) return tree[root];int mid=(begin+end)/2;LL k=0;if (l<=mid) k=max(k,get(root*2,begin,mid));if (r>mid) k=max(k,get(root*2+1,mid+1,end));return k;
}
main()
{scanf("%d%lld",&m,&d);for (int i=1;i<=m;i++){char ch=getchar();while (ch!='A'&&ch!='Q') ch=getchar();if (ch=='A') n++,orz[i][0]=2;else orz[i][0]=1;scanf("%lld",&orz[i][1]);}for (int i=1;i<=m;i++)if (orz[i][0]==1)l=r-orz[i][1]+1,t=get(1,1,n),printf("%lld\n",t);else l=++r,orz[i][1]=(orz[i][1]+t)%d,update(orz[i][1],1,1,n);
}

【BZOJ1012】最大数maxnumber,疯狂CE的线段树练习相关推荐

  1. bzoj 2054: 疯狂的馒头(线段树||并查集)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2054 线段树写法: 点的颜色只取决于最后一次染的颜色,所以我们可以倒着维护,如果当前区间之前 ...

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

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

  3. 【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber

    一眼看题目吓了一跳:这TM不就是单调队列吗,200000又怎样,大不了我二分嘛 系统提示:成功开启 手残模式 开始瞎写: 1 #include <cstdio> 2 long long a ...

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

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

  5. BZOJ 1012: [JSOI2008]最大数maxnumber(线段树)

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

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

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

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

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

  8. Luogu P1198 [JSOI2008]最大数 线段树

    P1198 [JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制: ...

  9. Luogu P1198 BZOJ 1012 最大数 (线段树)

    Luogu P1198 BZOJ 1012 最大数 (线段树) 手动博客搬家: 本文发表于20170821 14:32:05, 原地址https://blog.csdn.net/suncongbo/a ...

最新文章

  1. Python 扩展 Op
  2. Awcing算法--二进制
  3. js判断数组中重复元素并找出_面试中常遇见的数组去重
  4. 【c语言】蓝桥杯算法训练 整数平均值
  5. Cocos2d-x Touch事件处理机制
  6. pyxml for python 2.6 死而复生
  7. C++ Primer 5th笔记(chap 15 OOP)访问控制与继承
  8. SQL SERVER类型与C#类型对照
  9. php熊掌号怎么设置json-ld,织梦DEDECMS熊掌号JSON LD结构化数据代码分享
  10. Linux下一次数据仓库进行迁移记录
  11. python鼠标键盘事件代码_Python+selenium鼠标、键盘事件
  12. 蓝屏代码——STOP:c000021a Unknown Hard Error
  13. Day9学习记录 2021Python面向对象基础(下)(属性和方法的私有化、Property属性、__new__方法、单例模式 、异常处理、动态添加属性和方法、__slots__属性限制 )
  14. smtp中mailfrom是必须的吗_人脸识别在建筑工地实名制系统中扮演着什么样的角色,是必须的吗?...
  15. 浅谈Attention-based Model【原理篇】
  16. 解决Android图片剪切返回崩溃问题
  17. 练习3-2,编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。
  18. Linux内核中获取纳秒时间戳的方法
  19. pkpm板按弹性计算还是塑性_请教:筏板是按弹性算法?还是塑性算法?那个好些?...
  20. 台式计算机耳机有杂音怎么办,小编教你解决电脑耳机有噪音和杂音怎么办几个方法!...

热门文章

  1. 【开发者portal在线开发插件系列一】profile和基本上下行消息
  2. 【华为大咖分享】8.Focus on Value 的思考与实践精粹(后附PPT下载地址)
  3. Linux单用户下提示权限不够,Linux_/dev/null 权限不足,/dev/null文件设备的权限不对, - phpStudy...
  4. mysql 视图 速度慢_mysql 视图查询速度慢
  5. 设计模式笔记七:桥接模式
  6. mongodb php update,MongoDB文档的更新(php代码实例)
  7. python机器学习2021年6月19日09:35:06
  8. 使用MarkDown+mermaid-JS绘制简单图形
  9. poj3278 CatchThatCow bfs
  10. python - EDA - 1 统计缺失值