首先这是一道线段树裸题,但是线段树长度不确定,那么我们可以在建树的时候,将每一个节点初始化为-INF,每次往队尾加一个元素即一次单节点更新,注意本题的数据范围,其实并不用开 long long,具体请看注释。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
using namespace std;
const int MAXN=200005;
int read(){int rv=0,fh=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-') fh=-1;c=getchar();}while(c>='0'&&c<='9'){rv=(rv<<1)+(rv<<3)+c-'0';c=getchar();}return rv*fh;
}
int MOD,m,t,ma[MAXN<<2],n;
void PushUp(int rt){ma[rt]=max(ma[rt<<1],ma[rt<<1|1]);
}
void build(int l,int r,int rt){if(l==r){ma[rt]=-0x7fffffff;return;}int mid=l+((r-l)>>1);build(lson);build(rson);PushUp(rt);
}
void Update(int add,int loc,int l,int r,int rt){if(r==loc&&l==loc){ma[rt]=add;return;}int mid=l+((r-l)>>1); //这样取平均数可以防溢出if(loc<=mid) Update(add,loc,lson);else Update(add,loc,rson);PushUp(rt);
}
int query(int L,int R,int l,int r,int rt){if(L<=l&&r<=R){return ma[rt];}int mid=l+((r-l)>>1);int q=-0x7fffffff;if(L<=mid){q=max(q,query(L,R,lson));}if(mid<R) q=max(q,query(L,R,rson));return q;
}
int main(){freopen("in.txt","r",stdin);m=read();MOD=read();build(1,m,1);for(int i=1;i<=m;i++){char c;scanf(" %c ",&c);int k=read();if(c=='A'){n++;k=((long long)k+t)%MOD;//注意防止溢出Update(k,n,1,m,1);}else {t=query(n-k+1,n,1,m,1);printf("%d\n",t);}}fclose(stdin);return 0;
}

等等。。本题只要求在队尾加入元素,而且要求的是队尾几个元素的最小值,那么这道题就可以用单调栈+二分来做

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN=200005;
int read(){int rv=0,fh=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-') fh=-1;c=getchar();}while(c>='0'&&c<='9'){rv=(rv<<1)+(rv<<3)+c-'0';c=getchar();}return rv*fh;
}
int m,MOD,t,stack[MAXN],head,num[MAXN],cnt;
int main(){freopen("in.txt","r",stdin);m=read();MOD=read();for(int i=1;i<=m;i++){char c;scanf(" %c ",&c);int k=read();if(c=='A'){k=((long long)k+t)%MOD;cnt++;while(stack[head]<=k&&head) head--;head++;stack[head]=k;num[head]=cnt;}else {int l=1,r=head,mid;k=cnt-k+1;while(l<=r){mid=(l+r)>>1;if(num[mid]<k){l=mid+1;}else {r=mid-1;}}t=stack[l];printf("%d\n",t);}}fclose(stdin);return 0;
}

转载于:https://www.cnblogs.com/Mr-WolframsMgcBox/p/7868336.html

洛谷 [P1198] 最大数相关推荐

  1. 洛谷 - P1198 - 最大数 - 线段树

    https://www.luogu.org/problemnew/show/P1198 要问区间最大值,肯定是要用线段树的,不能用树状数组.(因为没有逆元?但是题目求的是最后一段,可以改成类似前缀和啊 ...

  2. 洛谷P1198 [JSOI2008]最大数

    P1198 [JSOI2008]最大数 267通过 1.2K提交 题目提供者该用户不存在 标签线段树各省省选 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 WA80的戳这QwQ BZOJ都 ...

  3. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  4. 低价购买(洛谷 1108)

    低价购买(洛谷 1108) 题目描述 "低价购买"这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:"低价购买:再低价购买& ...

  5. 【蓝桥杯专题】 贪心(C++ | 洛谷 | acwing | 蓝桥)

    菜狗现在才开始备战蓝桥杯QAQ 文章目录 [蓝桥杯专题] (C++ | 洛谷 | acwing | 蓝桥) 1055. 股票买卖 II AcWing 104. 货仓选址 传递糖果 AcWing 112 ...

  6. 洛谷千题复习计划(一)(Codeforces + AtCoder)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每天花一个小时简单复习一下我写过的洛谷的题目! 虽然还没有到千题,但是快了(等我复习完这些以后我 lu ...

  7. 洛谷or牛客数据结构+算法

    栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...

  8. 【数学1】基础数学问题 - 题单 - 洛谷

    这里写目录标题 [[数学1]基础数学问题 - 题单 - 洛谷](https://www.luogu.com.cn/training/117) [P1143 进制转换](https://www.luog ...

  9. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

最新文章

  1. Windows Server 2012 R2工作文件夹⑤:创建工作文件夹
  2. 关于如何防范Ⅱ、Ⅲ类银行结算账户风险
  3. 《系统集成项目管理工程师》必背100个知识点-69简述合同管理的主要内容
  4. 有关于微软的IWebBrowser2::Navigate2/Navigate方法
  5. VTK:绕线旋转用法实战
  6. parallels desktop 缺少组件_德国警方扣留光伏组件盗贼
  7. web加减乘除法c#_C#的加减乘除的问题
  8. python实现根据文件名找出(拷贝/剪切)同名文件的不同类型文件
  9. e记法 python 底数_干货满满,30个Python源代码!
  10. access统计各职务人数_2019年一建通过人数超15万?一建证书真的不值钱了?
  11. Text Particle Systems
  12. PHP微信h5棋牌搭建sprintf()函数的使用
  13. raise_for_status()方法
  14. vue element-ui列表中el-switch 开关,使用0和1
  15. MySQL中的统计数据
  16. 三节点大数据环境安装详细教程
  17. (新手版)GitHub安装和配置教程for Windows(肯定看得懂)
  18. 物联网平台Thingsboard3.2.1源码编译记录
  19. java 中 webcam类_如何在Java的Swing应用程序中集成Webcam?
  20. 基于OpenGL的Koch分形雪花实现

热门文章

  1. 10个有毒的设计神器
  2. 生成4位验证码(后台)
  3. Android群英传笔记——第四章:ListView使用技巧
  4. lambda expressions are not supported at this language level
  5. 移动端事件 、zepto移动端事件
  6. [POJ3253]Fence Repair
  7. 17. javacript高级程序设计-错误处理与调试
  8. VerifyError: Error #1107: ABC 数据已损坏,尝试的读取操作超出范围
  9. 禅道项目管理软件的命令行入口
  10. javascript之原型与原型链