BZOJ 1012 [JSOI2008]最大数maxnumber=听说是线段树
来源:互联网 发布:学通网络红尘ai教程 编辑:程序博客网 时间:2024/06/05 10:43
题目传送门:23333
听说是线段树标算,但我不知道为毛写了一个黑科技。
--------------------------
黑科技
维护一个递减栈,每次增加元素时,如果栈顶元素小于新增则弹出来保持递减性。
并且同时存下栈中元素的号码。
查询时从栈顶往下找,找到一个在L以内最大的输出即可。
--------------------------
以下论线段树标算
开始有n个元素,后来加入m个,于是以【1,n+m】为总区间建树。
加入元素变成了单点修改。
查询结尾变成了区间查询。
然后就会发现世界是那么美好!!
附黑科技代码:
#include <cstdio>#include <algorithm>#include <iostream>#include <windows.h>#define rep(j,k,l) for (int j=k;j<=l;j++)using namespace std;int a[200005],st[200005];int main(){int n,m,ans=0,l=0,ll=0;scanf("%d%d",&n,&m);while (n--){char ch=getchar();while (ch!='A'&&ch!='Q') ch=getchar();int k;scanf("%d",&k);if (ch=='A'){k=(k+ans)%m;ll++;a[ll]=k;while (l>0&&k>a[st[l]]) l--;l++;st[l]=ll;}else{int p=l;while (p>0&&k>=ll-st[p]+1)p--;ans=a[st[p+1]];printf("%d\n",ans);}}return 0;}
0 0
- BZOJ 1012 [JSOI2008]最大数maxnumber=听说是线段树
- BZOJ 题目1012: [JSOI2008]最大数maxnumber(线段树)
- bzoj 1012: [JSOI2008]最大数maxnumber(线段树)
- |BZOJ 1012|线段树|[JSOI2008]最大数maxnumber
- 【BZOJ 1012】 [JSOI2008]最大数maxnumber(线段树做法)
- BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树
- BZOJ 1012: [JSOI2008]最大数maxnumber 线段树入门题
- [BZOJ 1012][JSOI2008]最大数maxnumber:线段树|单调栈
- BZOJ 1012[JSOI2008]最大数maxnumber (线段树解法)
- BZOJ 1012[jsoi2008] 最大数maxnumber 线段树(或者是单调队列+二分)
- 【bzoj 1012】[JSOI2008]最大数maxnumber 线段树裸题
- BZOJ 1012 [JSOI2008] 最大数maxnumber 题解与分析 (ZKW线段树实现)
- BZOJ 1012 JSOI2008 最大数maxnumber 单调栈+二分 / 线段树
- BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值
- 【bzoj 1012】[JSOI2008]最大数maxnumber(线段树||st表)
- BZOJ 1012: [JSOI2008]最大数maxnumber
- BZOJ 1012 [JSOI2008]最大数maxnumber
- BZOJ 1012: [JSOI2008]最大数maxnumber
- lazarus实现dbgrid中的lookup字段好简单,随便点几下就实现了
- 在Spring中使用JOTM实现JTA事务管理
- 添加手势 swift
- 链表的增删改查
- 标准库
- BZOJ 1012 [JSOI2008]最大数maxnumber=听说是线段树
- Flink 原理与实现:Window 机制
- C和C++语言中字符串的声明
- Quartz教程六:CronTrigger
- 福利来了,邀请好友就送U盘启动盘咯,时间有限,过时不候!
- c标签库中<c:if>的使用
- 贝塞尔曲线开发的艺术
- EXCEL排序<hdoj1862>
- Eigen/MathFunctions.h error C2027: 使用了未定义类型“Eigen::internal::random_retval”