校运会的时候随手抽的题…

一句话题意

维护一个序列,初始为空,要求滋兹:

1.查询这个序列末尾$x$个数的最大值

2.设上一次查询的答案为$t$(如果还没查询$t=0$),在末尾插入一个数$(x+t)mod d$,$d$为给定常数


很容易想到用线段树做:记录序列的末尾,然后直接单点修改区间查询

本来想随便写完就过了的…然后一直爆零…

因为我写了一句

  1. while(n--)

然后这题应该就没什么要注意的地方了233

贴代码

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. const int N=200005;
  7. const int INF=(~0u>>2);
  8.  
  9. typedef long long lint;
  10.  
  11. inline lint read()
  12. {
  13. lint s=0,f=1;char c=getchar();
  14. while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
  15. while(c>='0'&&c<='9'){s=s*10+c-'0';c=getchar();}
  16. return s*f;
  17. }
  18.  
  19. lint n,d,x,t,cnt;
  20.  
  21. lint tr[N<<2];
  22.  
  23. char c;
  24.  
  25. #define lson (node<<1)
  26. #define rson (node<<1|1)
  27.  
  28. inline void push_up(int node)
  29. {
  30. tr[node]=max(tr[lson],tr[rson]);
  31. }
  32.  
  33. inline int query(int node,int l,int r,int ql,int qr)
  34. {
  35. if(ql<=l&&r<=qr)return tr[node];
  36. int mid=(l+r)>>1;
  37. int res=-INF;
  38. if(mid>=ql)res=max(res,query(lson,l,mid,ql,qr));
  39. if(mid+1<=qr)res=max(res,query(rson,mid+1,r,ql,qr));
  40. return res;
  41. }
  42.  
  43. inline void modify(int node,int l,int r,int q,lint val)
  44. {
  45. if(l==r&&r==q)
  46. {
  47. tr[node]=val;
  48. return;
  49. }
  50. int mid=(l+r)>>1;
  51. if(mid>=q)modify(lson,l,mid,q,val);
  52. if(mid+1<=q)modify(rson,mid+1,r,q,val);
  53. push_up(node);
  54. }
  55.  
  56. int main()
  57. {
  58. n=read();d=read();
  59. t=cnt=0;
  60.  
  61. for(register int i=1;i<=n;i++)
  62. {
  63. scanf("\n%c",&c);x=read();
  64. if(c=='Q')
  65. {
  66. t=query(1,1,n,max(1,(int)(cnt-x+1)),cnt);
  67. printf("%lld\n",t);
  68. }else
  69. {
  70.  
  71. cnt++;
  72. modify(1,1,n,cnt,(t+x)%d);
  73. }
  74. }
  75. return 0;
  76. }

听说有单调栈的做法…有空来填坑

[日常摸鱼]JSOI2008最大数的更多相关文章

  1. Hash 日常摸鱼笔记

    本篇文章是Hash在信息学竞赛中的应用的学习笔记,分多次更新(已经有很多坑了) 一维递推 首先是Rabin-Karp,对于一个长度为\(m\)的串\(S\) \(f(S)=\sum_{i=1}^{m} ...

  2. [日常摸鱼]HDU1724 Ellipse-自适应Simpson法

    模板题~ QAQ话说Simpson法的原理我还是不太懂-如果有懂的dalao麻烦告诉我~ 题意:每次给一个椭圆的标准方程,求夹在直线$x=l$和$x=r$之间的面积 Simpson法 (好像有时候也被 ...

  3. [日常摸鱼]bzoj1257余数之和

    题意:输入$k,n$,求$\sum_{i=1}^n k \mod i$ $k \mod i=k-i*\lfloor \frac{k}{i} \rfloor $,$n$个$k$直接求和,后面那个东西像比 ...

  4. [日常摸鱼]bzoj1001狼抓兔子-最大流最小割

    题意就是求最小割- 然后我们有这么一个定理(最大流-最小割定理 ): 任何一个网络图的最小割中边的容量之和等于图的最大流. (下面直接简称为最大流和最小割) 证明: 如果最大流>最小割,那把这些 ...

  5. [日常摸鱼]pojKaka's Matrix Travels-拆点+最大费最大流

    方格取数的升级版,每个格子最多取一次. $k=1$的话就是个普及组的dp题,$k=2$就是在之前的基础上多加两维. 然而现在$k$太大了当然就不dp啦 对于$k=1$的情况我们还可以把$(i,j)$向 ...

  6. [日常摸鱼]loj6000「网络流 24 题」搭配飞行员

    题面 应该是二分图匹配,不过我写的是网络最大流. dinic求二分图最大匹配:加个源点和汇点,源点连向二分图的一边所有点,二分图的另一边所有点连向汇点,很明显这样得到的最大流就是这个二分图的最大匹配. ...

  7. [日常摸鱼]poj1741Tree-点分治

    还有两天就要去FJWC啦- 题意:一颗无根树,$k$为给定常数,求树上距离不超过$k$的点对的数量,多组数据,$n \leq 10^4$. 应该是点分治经典题~ 一般对于无根树我们都可以把它转变成有根 ...

  8. [日常摸鱼]bzoj1218[HNOI2003]激光炸弹-二维前缀

    题意:二维网格一些格子有权值,求用边长为$r$的正方形能覆盖到格子权值和的最大值,格子大小$ \leq 5000$ 非常裸的二维前缀,然而 题目下标从0开始! QAQ 要是比赛就要爆零啦- #incl ...

  9. [日常摸鱼]bzoj2724蒲公英-分块

    区间众数经典题~ http://begin.lydsy.com/JudgeOnline/problem.php?id=4839这里可以提交~ 题意大概就是没有修改的询问区间众数,如果有一样的输出最小的 ...

随机推荐

  1. (buuctf) - pwn入门部分wp - rip -- pwn1_sctf_2016

    [buuctf]pwn入门 pwn学习之路引入 栈溢出引入 test_your_nc [题目链接] 注意到 Ubuntu 18, Linux系统 . nc 靶场 nc node3.buuoj.cn 2 ...

  2. Angular 富文本编辑之路的探索

    作者:杨振兴Worktile 前端工程师,PingCode Wiki 产品技术负责人 PingCode Wiki 提供结构化知识库来记载信息和知识,便于团队沉淀经验.共享资源,欢迎大家注册试用 本文主 ...

  3. [大雾雾雾雾] 告别该死的 EFCore Fluent API (续)

    朋友们好啊, 我是 .NET 打工人 玩双截棍的熊猫 刚才有个朋友问我 猫猫发生什么事了 我说 怎么回事? 给我发了一张截图 我一看!嗷!原来是zuo天有两个数据库, 一个四十多岁,一个三十多岁 它们 ...

  4. js 实现textarea剩余字数统计

    1 针对textarea剩余字数统计 2 <div class="fankui-textarea"> 3 <span>留言:</span> &l ...

  5. 采集post传输的数据

    采集数据,网页上的数据是开发者通过ajax的post方式显示的,就得用到curl以及它的跨域方法 代码: $post_data------post传过去的参数 $ch = curl_init(); $ ...

  6. 专业五线谱作曲打谱软件Overture的常用快捷键功能大全

    快捷命令在我们使用软件时起到的帮助是不言而喻的,它用一个或几个简单的字母来代替常用的命令,使我们不用去记忆众多的长长的命令,也不必为了执行一个命令,在菜单和工具栏上寻寻觅觅.当然,随着Overture ...

  7. 自动化运维工具之Puppet基础入门

    一.简介 puppet是什么?它能做什么? puppet是一个IT基础设施自动化运维工具,它能够帮助系统管理员管理基础设施的整个生命周期:比如,安装服务,提供配置文件,启动服务等等一系列操作:基于pu ...

  8. mfc 笔记

    在类成员初始化时,使用另一个成员变量,必须满足,在.h声明时在另一个变量之后,初始 .hprivate: //K线图位置 CPoint m_KPoint; //十字光标位置 CPoint m_trac ...

  9. CentOS SSH安全和配置无密码登录

    CentOS ssh默认监听端口 22端口,允许root用户ssh登录.server投入生产后很有必要更改默认ssh监听端口和禁止root登录. 步骤1:确认安装有ssh包 [appuser@su17 ...

  10. 【GDKOI2014】JZOJ2020年8月13日提高组T2 石油储备计划

    [GDKOI2014]JZOJ2020年8月13日提高组T2 石油储备计划 题目 Description Input Output 对于每组数据,输出一个整数,表示达到"平衡"状态 ...