一眼看题目吓了一跳:这TM不就是单调队列吗,200000又怎样,大不了我二分嘛

系统提示:成功开启 手残模式

开始瞎写:

 1 #include <cstdio>
 2 long long a[200001];
 3 int b[200001];
 4 int m,mod;
 5 int find(int l,int r,long long x)
 6 {
 7     if(l>=r-1)
 8     if(a[r]>=x)
 9         return r;
10     else
11         return l;
12     int mid=(l+r)>>1;
13     if(a[mid]>=x)
14         return find(mid,r,x);
15     else
16         return find(l,mid-1,x);
17 }
18 int _find(int l,int r,long long x)
19 {
20     if(l>=r-1)
21     if(b[l]>=x)
22         return l;
23     else
24         return r;
25     int mid=(l+r)>>1;
26     if(b[mid]>=x)
27         return _find(l,mid,x);
28     else
29         return _find(mid+1,r,x);
30 }
31 int main()
32 {
33     scanf("%d%d",&m,&mod);
34     long long last=0;
35     int n=0,N=0;
36     for(int i=1;i<=m;i++)
37     {
38         char ch=getchar();
39         while(ch!='A' && ch!='Q')
40             ch=getchar();
41         long long x;
42         scanf("%lld",&x);
43         if(ch=='A')
44         {
45             n=find(0,n,(x+last)%mod)+1;
46             a[n]=(x+last)%mod;
47             b[n]=++N;
48         }
49         else
50         {
51             if(N==20)
52             {
53                 printf("");
54             }
55             last=(a[_find(1,n,N-x+1)])%mod;
56             printf("%d\n",last);
57         }
58     }
59     return 0;
60 }

卧槽,然后就A了,,,A了,,,

主要思路:

每次二分查找要加入的点的位置和要找的点的位置(利用单调队列位置和权值双重单调)

老板娘毁我人生,居然说这是rmq、线段树、树状数组

转载于:https://www.cnblogs.com/wanglichao/p/5689520.html

【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber相关推荐

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

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

  2. bzoj1012: [JSOI2008]最大数maxnumber [单调队列]

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

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

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

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

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

  5. BZOJ 1012 [JSOI2008]最大数maxnumber

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

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

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

  7. 1012: [JSOI2008]最大数maxnumber

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

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

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

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

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

最新文章

  1. 高昆仑大数定律 中心极限定理
  2. MySQL的优化(大纲)
  3. 为什么不建议在代码中使用 User 这个单词?
  4. 【读书笔记《Android游戏编程之从零开始》】6.Android 游戏开发常用的系统控件(TabHost、ListView)...
  5. MySQL外键创建失败1005原因总结
  6. 我喜欢构建器模式的三个原因
  7. 腾讯智慧交通战略重磅升级 打造以人为中心的未来交通
  8. Oracle Database 12C 学习之多租户(连载四)
  9. Tina-TI 电路仿真下载、安装、简单功能介绍
  10. 没有编辑器时,使用echo更换源
  11. 如何在 MacBook 上使用低电量模式和高电量模式?
  12. 微软放大招,惊现杨超越鼓励师编程插件!
  13. Android App上架应用市场所需资料说明
  14. 几款常见的可视化HTML编辑器 WYSIWYG
  15. 奇点云数据中台技术汇(三)| DataSimba系列之计算引擎篇
  16. z-index的使用小结
  17. 高新技术企业申报认定需要满足哪些条件?
  18. X11 关闭屏幕保护
  19. Python文件及文件夹处理
  20. win7系统共享看不到别的计算机呢,系统之家win7系统在同一个工作组看不到其他电脑的解决方法...

热门文章

  1. 树莓派安装OpenELEC
  2. php简单创建多级目录
  3. It--网络生涯去向何方?
  4. Vivado Hardware Manager的使用
  5. 规格选择_Axure教程:实现商品规格选择功能
  6. 解读4G发牌事件,了解下4G那点事!
  7. matlab 2016b更改工作路径
  8. python 笔记 之 类的继承与重写
  9. 理解Java中的hashCode 和 equals 方法
  10. Python学习笔记(随笔)