【Comet OJ - Contest #15 E 栈的数据结构题】【离线+线段树】

这是一道关于栈操作的题目,包括push、pop和查询特定位置元素的问题。通过离线处理和线段树数据结构,可以高效地解决此问题。首先对询问按栈编号排序,然后反向执行操作,使用线段树维护区间值,将pop视为区间加1,push视为区间减1,当区间值为0时,即可找到对应询问的答案。整个过程的时间复杂度为O(n log n)。
摘要由CSDN通过智能技术生成

题意

n n n个栈,编号为 1 1 1 n n n,有以下三种操作:
1、对编号在 [ l , r ] [l,r] [l,r]中的每个栈执行 p u s h ( v ) push(v) push(v)操作。
2、对编号为 [ l , r ] [l,r] [l,r]中的每个栈执行 p o p ( ) pop() pop()操作。
3、查询某个栈中从栈顶开始第 k k k个元素。
n , q ≤ 2 ∗ 1 0 5 n,q\le2*10^5 n,q2105

分析

注意到对于某个询问,找到在它前面的最后一个 p u s h push push操作,满足执行该操作之后栈中恰好有 k k k个元素,则在该操作中入栈的元素就是答案。
考虑离线之后反着做,如果我们在遇到询问的时刻把询问加入,之后第一个时刻满足对应的栈中有 k k k个元素,就可以得到答案。
我们把询问按照栈的编号排序,用线段树维护询问序列,每次加入询问的时候把对应位置的值设为当前栈中元素数量减去询问的 k k k,把 p o p pop pop看成区间 + 1 +1 +1 p u s h push push看成区间 − 1 -1 1,则每个有效位置的值在任意时刻都是非负的。若某个时刻一个位置的值变为

BNUEP Offline Judge 北京师范大学珠海分校离线评测系统是在具备目测试数据的情况下,能无联网自动评测ACM/ICPC模式的源代码评测系统(即本地测试工具、评测机)。它主要有以下功能(所有的功能都无需联网,在本机即可实现): *评测核心功能: 基本具备Online Judge的判核心功能,如编译代码、内存限定,时间限定,获取代码长度等; *支持多种语言: 1.0 Beta2版本支持C/C++、Pascal、C#、JAVA; *出模式 可以在有标准输入数据和标准程序的情况下,由系统产生标准输出数据,并可批量保存,同时自动命名标准输出数据的后缀; *文本高亮对比 在判后,可以直接在本系统中将自己的程序输出和标准输出进行高亮的文本差异对比,操作类似于一些文本对比软件,在一定程度上可以较方便地发现WA代码的出错细节; *支持不限时执行代码 这个功能可以在一定程度上检测TLE代码的算法是否正确的,当然,不能是跑一天都没跑出来的程序; *打包与加密测试数据 使用加密后的数据可以正常判,但不显示标准输出。这个功能是为了弥补放出去给别人评测的测试数据是明文的缺陷。加密之后评测方就看不到测试数据。这样就既可以实现离线评测,又可以实现Online Judge上的对测试数据屏蔽; ACM-ICPC简介: ACM国际大学生程序设计竞赛(简称ACM-ICPC)是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办,是世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计竞赛,其宗旨是使大学生能通过计算机充分展示自己分析问和解决问的能力。 ACM-ICPC的每一道,都具备目、需求描述、输入格式描述、输出格式描述、样例输入和样例输出共六大信息,有些目还有一定的提示。此外,裁判还额外存储了关于该的一组或多组对选手屏蔽的标准输入和标准输出数据,这些测试数据已经经过验证符合意要求。当用户提交一道目的源码之后,裁判会将该源码放入评测系统中编译运行,并使用标准输入作为用户程序的输入,然后获取用户程序的输出,接着,将用户程序输出和标准输出比较,最后返回给用户一个评判结果。评判结果包括:Accepted(测试通过)、Compile Error(编译失败)、Memory Limit Exceed(内存超出限制)、Presentation Error(格式错误)、Runtime Error(运行时错误,可能是数组越界,改写只读的内存,除零,或堆溢出等错误)、Time Limit Exceed(时间超出限制)、Wrong Answer(答案错误)等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值