[JSOI2008]最大数maxnumber

标签: 线段树 单独队列


题目链接

题解

线段树裸题。

如果一直RE可能是你用的cin/cout。

Code

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<cstring>
  4. #include<iostream>
  5. #include<algorithm>
  6. #include<cmath>
  7. #include<queue>
  8. #include<stack>
  9. #include<set>
  10. #include<map>
  11. using namespace std;
  12. #define ll long long
  13. #define REP(i,a,b) for(int i=(a),_end_=(b);i<=_end_;i++)
  14. #define DREP(i,a,b) for(int i=(a),_end_=(b);i>=_end_;i--)
  15. #define EREP(i,a) for(int i=start[(a)];i;i=e[i].next)
  16. inline int read()
  17. {
  18. int sum=0,p=1;char ch=getchar();
  19. while(!(('0'<=ch && ch<='9') || ch=='-'))ch=getchar();
  20. if(ch=='-')p=-1,ch=getchar();
  21. while('0'<=ch && ch<='9')sum=sum*10+ch-48,ch=getchar();
  22. return sum*p;
  23. }
  24. const int maxn=2e5+20;
  25. int n;
  26. int mod;
  27. struct node {
  28. int mx;
  29. inline void Merge(node a,node b)
  30. {
  31. mx=max(a.mx,b.mx);
  32. }
  33. };
  34. node c[maxn*4];
  35. void init()
  36. {
  37. n=read();mod=read();
  38. }
  39. #define lc (o<<1)
  40. #define rc (o<<1 | 1)
  41. #define left lc,l,mid
  42. #define right rc,mid+1,r
  43. inline void update(int x,int d,int o,int l,int r)
  44. {
  45. if(l==r)
  46. {
  47. c[o].mx=d;
  48. return;
  49. }
  50. register int mid=(l+r)>>1;
  51. if(x<=mid)update(x,d,left);
  52. else update(x,d,right);
  53. c[o].Merge(c[lc],c[rc]);
  54. }
  55. inline int query(int ql,int qr,int o,int l,int r)
  56. {
  57. if(ql<=l && r<=qr)
  58. {
  59. return c[o].mx;
  60. }
  61. register int mid=(l+r)>>1;register int ans=0;
  62. if(ql<=mid)ans=max(ans,query(ql,qr,left));
  63. if(qr>mid)ans=max(ans,query(ql,qr,right));
  64. return ans;
  65. }
  66. inline void doing()
  67. {
  68. register int t=0;
  69. int cnt=0;
  70. REP(i,1,n)
  71. {
  72. char ch[5];int x;
  73. scanf("%s",ch);
  74. if(ch[0]=='A')
  75. {
  76. cnt++;
  77. x=read();x=(x+t)%mod;
  78. update(cnt,x,1,1,n);
  79. }else
  80. {
  81. x=read();
  82. t=query(cnt-x+1,cnt,1,1,n);
  83. printf("%d\n",t);
  84. }
  85. }
  86. }
  87. int main()
  88. {
  89. init();
  90. doing();
  91. return 0;
  92. }

[JSOI2008]最大数maxnumber的更多相关文章

  1. BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 8748  Solved: 3835[Submi ...

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

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

  3. 【bzoj1012】[JSOI2008]最大数maxnumber

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 8339  Solved: 3624[Submi ...

  4. Cogs 1844. [JSOI2008]最大数maxnumber

    [JSOI2008]最大数maxnumber ★★ 输入文件:bzoj_1012.in 输出文件:bzoj_1012.out 简单对比 时间限制:3 s 内存限制:162 MB [题目描述] 现在请求 ...

  5. BZOJ 1012: [JSOI2008]最大数maxnumber【线段树单点更新求最值,单调队列,多解】

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 10374  Solved: 4535[Subm ...

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

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 13081  Solved: 5654[Subm ...

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

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 4750  Solved: 2145[Submi ...

  8. 大视野 1012: [JSOI2008]最大数maxnumber(线段树/ 树状数组/ 单调队列/ 单调栈/ rmq)

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 9851  Solved: 4318[Submi ...

  9. bzoj-1012 1012: [JSOI2008]最大数maxnumber(线段树)

    题目链接: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Description 现在请求你维护一个数列,要 ...

随机推荐

  1. C#编写影院售票系统(A project with a higher amount of gold )(2:相关代码)

    此篇文章为项目代码,,,需要项目需求 ,思路分析与窗体效果请访问:http://www.cnblogs.com/lsy131479/p/8367304.html 项目类图: 影院类: using Sy ...

  2. 非线性规划带约束-scipy.optimize.minimize

    # coding=utf-8 from scipy import optimize import numpy as np def get(args): a, b, c, d, e, f, g, h = ...

  3. JDBC (二)

    1 使用JDBC进行批处理 当需要向数据库发送一批SQL语句的时候,应该避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提高执行效率. 实现批处理的方式一: Statement.add ...

  4. google的grpc在golang中的使用

    GRPC是google开源的一个高性能.跨语言的RPC框架,基于HTTP2协议,基于protobuf 3.x,基于Netty 4.x. 前面写过一篇golang标准库的rpc包的用法,这篇文章接着讲一 ...

  5. Base64图片编码优化

    通过对图片进行base64编码,将base64(或其他数据)内嵌在image标签的属性当中(或者CSS中或JavaScript中),可以实现将图片直接嵌入代码中的目的,如此一来,可以减少HTTP请求, ...

  6. Android Camera2采集摄像头原始数据并手动预览

    Android Camera2采集摄像头原始数据并手动预览 最近研究了一下android摄像头开发相关的技术,也看了Google提供的Camera2Basic调用示例,以及网上一部分代码,但都是在Te ...

  7. C#基础(五)--枚举的含义及其应用

    本章讲解如下枚举的如下几个知识点:    1.什么是枚举?    2.枚举是值类型还是引用类型?    3.如何定义枚举?    4.枚举的好处?    5.枚举在实际系统开发过程中的用处?    一 ...

  8. DAY11-Java中的类--接上篇

    一.用户自定义类 1.写先出一个简单的Employee类作为例子说明. 代码如下: import java.time.LocalDate; /** * 自定义方法练习--测试 这个程序中包含了两个类E ...

  9. window.print打印指定html元素中的内容

    通常有些时候我们项目过程中使用到打印功能,而wndow.print便是系统里提供的一个函数. 但是直接使用的话,它打印的将是整个页面的所有元素,而有些时候我们又只需要打印部分内容. <body& ...

  10. web框架之Django基础

    1. Django的简介 Django是一个由python写成的开放源代码的Web应用框架. Django的目的是使常见的Web开发任务,快速和容易. 2. Django框架的特点 1. 遵循MVC开 ...