【JSOI2008】最大值

线段树裸题!动态RMQ。

这道题的操作是直接在序列末尾添加数值,所以连\(push_{down}\),以及建树什么的都不用了。。

这真是写过的最简短的一道\(seg_{tree}\)了2333

(似乎有很多其他做法,不过没有研究qwq(因为太菜))

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
#define ll long long
#define mod d
#define MAXN 200233
#define inf -5223372036854775808
#define leftson cur<<1
#define rightson cur<<1|1
#define mid ((l+r)>>1)
#define push_up ans[cur]=llmax(ans[leftson],ans[rightson])%mod
ll m,d;
int tot=0;
ll llmax(ll x,ll y)
{
return x>y?x:y;
}
ll ans[MAXN<<2]={};
inline void change(int adc,int cur,int l,int r,int del)
{
if (l==r)
{
ans[cur]=del;
return;
}
if (adc<=mid) change(adc,leftson,l,mid,del);
if (adc>mid) change(adc,rightson,mid+1,r,del);
push_up;
}
inline ll query(int adl,int adr,int cur,int l,int r)
{
if (adl<=l&&r<=adr)
{
return ans[cur];
}
ll x=inf,y=inf;
if (adl<=mid) x=query(adl,adr,leftson,l,mid);
if (adr>mid) y=query(adl,adr,rightson,mid+1,r);
return llmax(x,y);
}
int main()
{
scanf("%lld%lld",&m,&d);
char q;
ll a,b=0;
for (int i=1;i<=m;i++)
{
cin>>q;
scanf("%lld",&a);
if (q=='A')
{
change(++tot,1,1,m,(a+b)%mod);
continue;
}
if (a==0) b=0;
else b=query(tot-a+1,tot,1,1,m);
printf("%lld\n",b);
}
return 0;
}

【JSOI2008】最大值的更多相关文章

  1. BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 8748  Solved: 3835[Submi ...

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

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

  3. 洛谷P1198 [JSOI2008]最大数

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

  4. BZOJ_1012_[JSOI2008]_最大数maxnumber_(线段树/树状数组+RMQ)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1012 两种操作: 1.求序列末尾n个数中的最大值. 2.在序列末尾插入一个数. 分析 线段树求 ...

  5. BZOJ 1012: [JSOI2008]最大数maxnumber【线段树单点更新求最值,单调队列,多解】

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 10374  Solved: 4535[Subm ...

  6. 洛谷P1198 [JSOI2008]最大数(BZOJ.1012 )

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

  7. P1198 [JSOI2008]最大数

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

  8. 【BZOJ1568】[JSOI2008]Blue Mary开公司 线段树

    [BZOJ1568][JSOI2008]Blue Mary开公司 Description Input 第一行 :一个整数N ,表示方案和询问的总数.  接下来N行,每行开头一个单词“Query”或“P ...

  9. 1568: [JSOI2008]Blue Mary开公司

    1568: [JSOI2008]Blue Mary开公司 题目描述 传送门 题目分析 简单分析可以发现就是不停给出了\(n\)条直线,要求每次给出一条直线后求出所有直线在横坐标为\(x\)时\(y\) ...

  10. bzoj 1568 [JSOI2008]Blue Mary开公司 超哥线段树

    [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1808  Solved: 639[Submit][Sta ...

随机推荐

  1. MLR算法双面网络时钟

    MLR算法双面网络时钟------专业LED时钟厂家![点击进入] MLR算法双面网络时钟 NTP电子时钟功能说明: 双面NTP电子时钟采用独特结构设计,可根据客户要求订制显示布局:年.月.日.时.分 ...

  2. 在uniapp中使用百度地图的Autocomplete(关键字自动完成提示)不弹出提示框的问题

    let ac = new BMap.Autocomplete({ "input": document.querySelector('input'), "location& ...

  3. Centos7下搭建部署DoClever接口管理平台

    项目地址: github:https://github.com/sx1989827/DOClever 码云:https://gitee.com/sx1989827/SBDoc 1.根据官方文档,先安装 ...

  4. js 全屏显示指定区域

    小猪最近使用vue开发项目的时候,需要实现将指定区域全拼展示的操作. 小猪选择使用js来实现,实现原理:使用requestFullscreen()方法将指定的dom元素在全屏模式下打开. 支持的部分浏 ...

  5. Training time_SSM

    三阶段 MyBatis 1 三层架构介绍 2 MyBatis介绍 类库:对于现有技术的一个封装. 框架:对于一个问题的一整套解决方案. MyBatis是一个半自动的ORM持久层的框架.刚开始叫做iBa ...

  6. php 后台注册环信用户

    <?php //Easemob.php <?php /** -------------------------------------------------- 环信PHP REST示例代 ...

  7. 第一天1h

    //摄氏度和华氏度之间的换算//20211120//ZhangWenjing#include<stdio.h>int main(void){ int f = 0; int c = 0; s ...

  8. SSH、SFTP、FTP、Telnet、SCP、TFTP协议的原理

    一.SSH协议1.什么是SSH?SSH全称 安全外壳协议(Secure Shell),,是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境. 如果一个用户从本地计算机,使用SSH ...

  9. Chrome(谷歌)浏览器永久关闭恢复页面提示框(记录)

    使用脚本调用Chrome浏览器启动指定页面,然后代码里的命令关闭,会被浏览器识别为非正常关闭. 再次执行脚本的时候会停留在空白页面,无法进入指定页面,设置为主页也无法进入. 排查可能是浏览器自动恢复页 ...

  10. Asp.Net Core 网站使用TinyMCE实现上传图片

    1.下载TinyMCE https://www.tiny.cloud/get-tiny/self-hosted/ 解压缩后放在网站wwwroot目录 2.下载中文语言包 https://www.tin ...