[JSOI2008] 最大数 题解 线段树
[JSOI2008] 最大数
传送门
题目描述
现在请求你维护一个数列,要求提供以下两种操作:
- 查询操作。
语法:Q L
功能:查询当前数列中末尾 L L L 个数中的最大的数,并输出这个数的值。
限制: L L L 不超过当前数列的长度。 ( L > 0 ) (L > 0) (L>0)
- 插入操作。
语法:A n
功能:将 n n n 加上 t t t,其中 t t t 是最近一次查询操作的答案(如果还未执行过查询操作,则 t = 0 t=0 t=0),并将所得结果对一个固定的常数 D D D 取模,将所得答案插入到数列的末尾。
限制: n n n 是整数(可能为负数)并且在长整范围内。
注意:初始时数列是空的,没有一个数。
输入格式
第一行两个整数, M M M 和 D D D,其中 M M M 表示操作的个数, D D D 如上文中所述。
接下来的 M M M 行,每行一个字符串,描述一个具体的操作。语法如上文所述。
输出格式
对于每一个查询操作,你应该按照顺序依次输出结果,每个结果占一行。
样例 #1
样例输入 #1
5 100
A 96
Q 1
A 97
Q 1
Q 2
样例输出 #1
96
93
96
提示
数据规模与约定
对于全部的测试点,保证 1 ≤ M ≤ 2 × 1 0 5 1 \leq M \leq 2 \times 10^5 1≤M≤2×105, 1 ≤ D ≤ 2 × 1 0 9 1 \leq D \leq 2 \times 10^9 1≤D≤2×109。
注明
以上来自洛谷 以上来自洛谷 以上来自洛谷
解题思路
前置知识:
- 并查集。
- 队列。
正文
将一个数插入单调队列时,可以将被删除的数的父亲标记为插入的数,在查找时只要找到查找的数的根,此时根上的数值即为答案。时间复杂度: O ( n ) O(n) O(n)。
具体题解 如下。(这里有一个梗,猜猜是啥)
AC Code
#include<bits/stdc++.h>
using namespace std;
char buf[1048576], *p1, *p2;
template<typename T>inline void Quick_Write(T x) {if (x < 0) putchar('-'), x = -x;if (x > 9) Quick_Write(x / 10);putchar(x % 10 + '0');return;
}
struct node {long long x;int y;
} Arry[200005];
int m;
long long d, x;
int Total, Length_Count, f[200005];
long long Temp, T[200005];
char ch[3];
inline int Find(int x) {if (x != f[x]) f[x] = Find(f[x]);return f[x];
}
signed main() {scanf("%d%lld", &m, &d);for (register int i = 1; i <= m; ++i) {getchar(), scanf("%s", ch), scanf("%lld", &x);if (ch[0] == 'A') {x += Temp, x %= d, ++Total, T[Total] = x, f[Total] = Total;while (x > Arry[Length_Count].x && Length_Count) f[Arry[Length_Count].y] = Total, Length_Count--;Arry[++Length_Count].x = x, Arry[Length_Count].y = Total;} else {x = Total - x + 1;int y = Find(x);Temp = T[y], Quick_Write(Temp), puts("");}}return 0;
}
相关文章:
[JSOI2008] 最大数 题解 线段树
[JSOI2008] 最大数 传送门 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 查询操作。 语法:Q L 功能:查询当前数列中末尾 L L L 个数中的最大的数,并输出这个数的值。 限制: L L L 不超过…...
python爬虫之app爬取-charles的使用
专栏系列:http://t.csdnimg.cn/WfCSx 前言 前面介绍的都是爬取 Web 网页的内容。随着移动互联网的发展,越来越多的企业并没有提供 Web 网页端的服务,而是直接开发了 App,更多更全的信息都是通过 App 来展示的。那么针对 App 我们可以爬取吗?当然可以。 App 的爬取相比 …...
神经网络结构——CNN、RNN、LSTM、Transformer !!
文章目录 前言 一、什么是CNN 网络结构 解决问题 工作原理 实际应用 二、什么是RNN 网络结构 解决问题 工作原理 应用场景 三、什么是LSTM 网络结构 解决问题 工作原理 应用场景 四、什么是Transformer 网络结构 解决问题 工作原理 BERT GPT 前言 本文将从什么是CNN࿱…...
mysql 事务的隔离级别
一、事务的隔离级别要解决的问题: 1)脏读:读到了其它事务未提交的数据即脏读,未提交意味着数据有可能会被回滚,也就是最终有可能不会存储到数据库中,即读到了最终不一定存在存在的数据,即为脏读…...
Unity3D 阴影的计算原理详解
前言 阴影是游戏中的重要特效之一,可以增加游戏的真实感和立体感。在Unity3D中,阴影的计算原理主要包括阴影的产生、投影和渲染。 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀! 首…...
【物联网应用案例】从0到N,智慧农业的数据价值
智慧农业全方位渗透到农业的每一个环节,云端解决方案更推动了研究人员、农艺师及农民间的密切协作,为研发企业提供了既经济又具扩展性的完美方案。 据IDC预计,到2036年,农场收集的数据量将增加800%以上,这凸显了农业数…...
文生视频基础1:sora技术报告学习
sora技术报告学习 背景学后理解训练流程技术拆解编码解码扩散模型训练用数据 28号直播交流会后的一些想法自身的一点点想法 参考 原文地址:Video generation models as world simulators 背景 此项目的背景是基于Datawhale的关于sora技术文档的拆解和相关技术讲解…...
Linux第68步_旧字符设备驱动的一般模板
file_operations结构体中的函数就是我们要实现的具体操作函数。 注意: register_chrdev()和 unregister_chrdev()这两个函数是老版本驱动使用的。现在新字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。 1、创建C…...
23种设计模式——工厂方法模式
定义: 一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其他子类。 工厂方法通用类图: 这个图更好理解 在工厂方法模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的…...
水豚鼠标助手 强大的鼠标美化工具
水豚鼠标助手 水豚鼠标助手是一款 鼠标换肤、屏幕画笔、放大镜、聚光灯、屏幕放大、倒计时功能的强大屏幕演示工具。 软件助手获取 水豚鼠标助手1.0.0 安装教程 第一步:下载后,双击软件安装包 第二步:Windows可能会出现提示弹窗ÿ…...
ArrayList集合源码分析
ArrayList集合源码分析 文章目录 ArrayList集合源码分析一、字段分析二、构造方法分析三、方法分析四、总结 内容如有错误或者其他需要注意的知识点,欢迎指正或者探讨补充,共同进步。 一、字段分析 //默认初始化容量。这里和Vector一样,只是…...
循环队列与循环双端队列
文章目录 前言循环队列循环双端队列 前言 1、学习循环队列和循环双端队列能加深我们对队列的理解,提高我们的编程能力。 2、本文循环队列使用的是数组,循环双端队列用的是双向链表 3、题目连接:设计循环队列 ,设计循环双端队列。 …...
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
http 和 https 的区别 http 是明文传输,敏感信息容易在传输过程中被劫持https http加密,劫持了也无法解密 https 用到的加密方式 https 同时使用了对称加密和非对称加密,之所以没有全部使用非对称加密,是因为非对称加密的运算更加…...
(C语言)qsort函数模拟实现
前言 我们需先了解qsort函数 qsort函数详解:http://t.csdnimg.cn/rTNv9 qsort函数可以排序多种数据类型,很是神奇,这是为什么,我们在里模拟实现这样的功能 目录 1. qsort函数模拟实现 2. 我们使用bubble_sort函数排序整形数…...
WordPress建站入门教程:如何在本地电脑搭建WordPress网站?
前面跟大家分享了『WordPress建站入门教程:如何安装本地WordPress网站运行环境?』,接下来boke112百科就继续跟大家分享本地电脑如何搭建WordPress网站。 小皮面板(phpstudy)的“软件管理 – 网站程序”虽然可以一键部…...
Vue3教程
1.1 配置环境 vue官网: Vue.js - The Progressive JavaScript Framework | Vue.js 终端 Linux和Mac上可以用自带的终端。 Windows上推荐用powershell或者cmd。Git Bash有些指令不兼容。 安装Nodejs 安装地址: Node.js 安装vue/cli 打开Git Bash&#x…...
Linux系统Docker部署RStudio Server
文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…...
【C++】每周一题——2024.3.3(手滑再再写一篇)
题目 Cpp 【问题描述】 求N个字符串的最长公共子串,2 < N<=20,字符串长度不超过255。 例如:N=3,由键盘依次输入三个字符串为 What is local bus? Name some local buses. local bus is a h…...
TabLayout与ToolBar、ViewPager的使用
目录 1. 在ToolBar中添加TabLayout 2. 将工具栏设为活动栏 3. 初始化TabLayout 4. TabLayout监听器 可以在ToolBar工具栏中添加TabLayout配合,效果如下图。 1. 在ToolBar中添加TabLayout TabLayout的常用属性有: tabBackground 指定标签的背景 t…...
链表基础知识详解(非常详细简单易懂)
概述: 链表作为 C 语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛,所以必须要搞懂链表,链表分为单向链表和双向链表,单向链表很…...
实战应用:基于快马平台构建支持高并发的医院预约系统后端服务
今天想和大家分享一个实战项目:基于InsCode(快马)平台构建医院预约系统后端服务的经验。这个系统需要处理高并发预约、确保数据一致性,还要对接短信通知等第三方服务,对代码健壮性要求很高。 系统架构设计 医院预约系统的核心是要解决"…...
颠覆级开源模型Wan2.2-TI2V-5B:重新定义AI视频创作
颠覆级开源模型Wan2.2-TI2V-5B:重新定义AI视频创作 【免费下载链接】Wan2.2-TI2V-5B Wan2.2-TI2V-5B是一款开源的先进视频生成模型,基于创新的混合专家架构(MoE)设计,显著提升了视频生成的质量与效率。该模型支持文本生…...
HR 人才库管理全解:从搭建到激活的实操指南
人才是企业发展的核心资源,HR 人才库管理作为人力资源管理的重要环节,是企业沉淀、激活与复用人才资源的关键手段。传统人才管理模式下,信息分散、检索低效、资源沉睡等问题普遍存在,难以支撑企业高效招聘与长期人才储备需求。 系…...
别再只当CANopen网关用!EL6751的‘直通CAN’模式,让你像用CAN盒一样调试非标设备
EL6751的直通CAN模式:解锁非标设备调试新姿势 当你的工控柜里躺着几台国产非标设备,厂商只提供了CAN盒调试软件,而手边只有倍福PLC时,那种抓狂的感觉每个自动化工程师都懂。别急着下单采购USBCAN工具,你需要的可能只是…...
高效办公:浏览器扩展无需安装桌面软件的全功能解决方案
高效办公:浏览器扩展无需安装桌面软件的全功能解决方案 【免费下载链接】se-office se-office扩展,提供基于开放标准的全功能办公生产力套件,基于浏览器预览和编辑office。 项目地址: https://gitcode.com/gh_mirrors/se/se-office 在…...
Intv_AI_MK11 跨平台开发应用:基于 Qt 框架的桌面智能助手
Intv_AI_MK11 跨平台开发应用:基于 Qt 框架的桌面智能助手 1. 为什么需要跨平台智能助手 在日常工作和学习中,我们经常遇到这样的场景:在Windows上收集的资料,想在Mac上继续编辑;在Linux服务器上开发的代码ÿ…...
OpenClaw浏览器自动化:Qwen3-14B驱动跨页面数据采集
OpenClaw浏览器自动化:Qwen3-14B驱动跨页面数据采集 1. 为什么选择OpenClaw做数据采集? 去年我接手了一个电商价格监控的需求,需要定期抓取30多个商品页面的价格波动。最初尝试用Python写爬虫,但很快遇到三个痛点:反…...
2026年4月OpenClaw怎么安装?阿里云高效方法:搭建及大模型API、Skill集成流程
2026年4月OpenClaw怎么安装?阿里云高效方法:搭建及大模型API、Skill集成流程。OpenClaw作为2026年主流的AI自动化助理平台,可通过阿里云轻量服务器实现724小时稳定运行,并快速接入钉钉,让AI在企业群聊、个人工作流中自…...
Leather Dress Collection效果展示:12款皮革服饰LoRA高清生成作品集
Leather Dress Collection效果展示:12款皮革服饰LoRA高清生成作品集 1. 项目介绍 Leather Dress Collection 是一个基于Stable Diffusion 1.5的LoRA模型集合,专门用于生成各种皮革服装风格的图像。这个系列包含了12种不同风格的皮革服饰模型࿰…...
解密MyBatis拦截器:从插件机制到实战应用
1. MyBatis拦截器基础入门 第一次接触MyBatis拦截器时,我完全被它强大的功能震撼到了。简单来说,拦截器就像是在MyBatis执行SQL过程中的"关卡",可以在特定时机插入自定义逻辑。想象一下,你正在通过一条高速公路…...
