洛谷P1198 [JSOI2008]最大数

简单的线段树单点问题。

问题:读入AQ时,按照读入一个字符会MLE,换成读入字符串就可以了。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define lson l, mid, root << 1
  4. #define rson mid + 1, r, root << 1 | 1
  5. const int maxn = 200005;
  6. long long MAX[maxn << 2], D, t, xx;
  7. int M, len;
  8. char c[5];
  9. inline void pushDown(int root){
  10. MAX[root] = max(MAX[root << 1], MAX[root << 1 | 1]);
  11. }
  12. void update(int l, int r, int root, int pos, long long x)
  13. {
  14. if(l == r){
  15. MAX[root] = x; return;
  16. }
  17. int mid = (l + r) >> 1;
  18. if(pos <= mid) update(lson, pos, x);
  19. else update(rson, pos, x);
  20. pushDown(root);
  21. }
  22. long long query(int l, int r, int root, int L, int R)
  23. {
  24. if(L == l && R == r){
  25. return MAX[root];
  26. }
  27. int mid = (l + r) >> 1;
  28. if(R <= mid) return query(lson, L, R);
  29. else if(L >= mid + 1) return query(rson, L, R);
  30. else return max(query(lson, L, mid), query(rson, mid + 1, R));
  31. }
  32. int main()
  33. {
  34. scanf("%d%lld", &M, &D);
  35. for(int i = 1; i <= M; i++){
  36. scanf("%s%lld", c, &xx);
  37. if(c[0] == 'A'){
  38. xx = (t * 1LL + xx) % D;
  39. len++;
  40. update(1, M, 1, len, xx);
  41. }
  42. else{
  43. t = query(1, M, 1, (int)(len - xx + 1), len) % D;
  44. printf("%lld\n", t);
  45. }
  46. }
  47. return 0;
  48. }

洛谷P1198 [JSOI2008]最大数(单点修改,区间查询)的更多相关文章

  1. 「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数

    「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数 题面描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数, ...

  2. 洛谷 P1198 [JSOI2008]最大数

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

  3. 洛谷P1198 [JSOI2008]最大数

    P1198 [JSOI2008]最大数 267通过 1.2K提交 题目提供者该用户不存在 标签线段树各省省选 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 WA80的戳这QwQ BZOJ都 ...

  4. 【题解】洛谷P1198 [JSOI2008] 最大数(线段树)

    洛谷P1198:https://www.luogu.org/problemnew/show/P1198 思路 一道水水的线段树 20分钟A掉 这道题只涉及到单点修改和区间查询 所以这道题甚至不用Laz ...

  5. 洛谷P1198 [JSOI2008]最大数(BZOJ.1012 )

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

  6. BZOJ——1012: [JSOI2008]最大数maxnumber || 洛谷—— P1198 [JSOI2008]最大数

    http://www.lydsy.com/JudgeOnline/problem.php?id=1012|| https://www.luogu.org/problem/show?pid=1198 T ...

  7. 洛谷 P1198 [JSOI2008]最大数——单调栈/线段树

    先上一波题目 https://www.luogu.org/problem/P1198 题目要求维护后缀最大值 以及在数列的最后面添加一个数 这道题呢我们有两种做法 1.单调栈 因为只需要维护后缀最大值 ...

  8. 洛谷 P1198 [JSOI2008]最大数 Label:线段树

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

  9. 洛谷P1198 [JSOI2008]最大数(线段树)

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

随机推荐

  1. 14.AutoMapper 之依赖注入(Dependency Injection)

    https://www.jianshu.com/p/f66447282780   依赖注入(Dependency Injection) AutoMapper支持使用静态服务定位构建自定义值解析器和自定 ...

  2. 在html中展示pdf

    pc端 插件: https://pdfobject.com/ 使用: <!doctype html> <html lang="en"> <head&g ...

  3. 定义Vue-router的动态路由,获取传过来的动态参数

    设置:在router目录下的index.js文件中,对path属性加上/:id 获取:使用router对象的params.id

  4. React Native 底部导航栏

    首先安装:npm install react-native-tab-navigator   然后再引入文件中    import TabNavigator from 'react-native-tab ...

  5. javaScript运动框架之缓冲运动

    缓冲运动 逐渐变慢,最后停止 距离越远速度越大   速度由距离决定 速度=(目标值-当前值)/缩放系数 存在Bug 速度取整 跟随页面滚动的缓冲侧边栏 潜在问题:目标值不是整数时 缓冲运动的停止条件 ...

  6. Linux系统账户管理指令

    sudo passwd -l weblogic 锁定账户 sudo passwd -u weblogic 解锁账户 useradd weblogic -p xxxxx 添加账户指定密码 sudo us ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(3)|所有权Ownership]

    今天我们来讲讲rust最难,也是最重要的概念: Ownership,Borrowing,Lifetimes 首先我们来看看:ownership(所有权) 我们来看看下面的代码: let a = [1, ...

  8. 移动端布局基础viewport

    划重点 手机屏幕相对着桌面浏览器小,传统网页的设计在手机上体验糟糕 Apple 在移动版 Safari 中定义了 viewport meta 标签(如果没记错最早提出的话),用于创建一个虚拟窗口(la ...

  9. 流式布局和viewport

    流式布局 百分比布局,非固定宽度,内容向两边填充,流动的布局. viewport(视口) PC端的网页在手机端的浏览器显示是不会出现网页的,这是因为移动端的网页不是直接放在移动端的浏览器中,而是放在移 ...

  10. MongoDB实现增删查方法

    1.添加信息 public void addInfo(Infomation infomation) { try{ // TODO Auto-generated method stub //连接Mong ...