jsoi2008最大数bzoj1012
2015-08-25 11:34
513 查看
题意就是维护一个队列,支持查询最近插入的L个数里面的最大值和插入,所以我们可以使用单调栈,单调队列之类的写,线段树平衡树当然可以只不过我们需要在比赛中尽量的节省时间,当然平常我们也可以练习一下,线段树很直观,直接做,平衡树加入一个插入标记,把查询L个数中最早插入的splay树根,最近的splay到右子树然后似乎就可以做了?有时间写一发试下啊咧《这莫非又是坑?
#include<cstdio> #include<algorithm> using namespace std; int a[200005],top,b[200005],ans,inf; int n,flag; int main() { scanf("%d%d",&n,&inf); for (int i=1;i<=n;i++) { char op[1];int x; scanf("%s %d",op,&x); if (op[0]=='A') { x+=ans; x%=inf; b[++b[0]]=x; while (top&&b[a[top]]<=x) top--; a[++top]=b[0]; } else { int t=lower_bound(a+1,a+top+1,b[0]-x+1)-a; ans=b[a[t]]; printf("%d\n",ans); } } return 0; }
相关文章推荐
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构揭秘一
- 数据结构之Treap详解
- 浅谈单调队列、单调栈
- JavaScript数据结构和算法之图和图算法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
- java数据结构和算法学习之汉诺塔示例
- Java数据结构及算法实例:三角数字
- Java数据结构之简单链表的定义与实现方法示例
- 数据结构之AVL树详解
- 【数据结构之旅】稀疏矩阵的快速转置