首页 > 其他分享 >新高一暑假第一期集训恢复性训练【数据结构-线段树晚测】(补)

新高一暑假第一期集训恢复性训练【数据结构-线段树晚测】(补)

时间:2024-10-24 18:31:34浏览次数:1  
标签:晚测 一个 线段 集训 数据结构 智商

新高一暑假第一期集训恢复性训练【数据结构-线段树晚测】(补)


A. [CF1045G] AI robots

我们先按视野降序排序,这样一个一个考虑,如果后面的能看到前面,那前面的也肯定能看到后面。

这样,就是对于每一个机器人,在他前面有几个智商在 \([q-k,q+k]\),位置在 \([x-r,x+r]\)。

那么把这个东西看做一个矩形覆盖就可以了。

然后因为智商这一维维数很小,我们可以对每一个智商开一个动态开点线段树,然后一个一个扫过去统计答案就可以了。


B. [CF1000F] One Occurrence

先把询问离线。

设 \(i\) 位置的数上次出现的位置是 \(p_i\)(如果第一次出现那就是 \(0\))。

可以想到,用线段树维护一个区间的 \(p\) 的最小值,如果它小于区间左端点,那这个数就是一个合法的答案。

但直接这样做是错的。

考虑 \(1,2,3,4,[1,1],5\),虽然前一个 \(1\) 的 \(p\) 在区间外面,但他后面还有一个 \(1\)。

所以可以按照询问的右端点排序,推着来维护这个最小值。

具体来说,对于 \(i\),先把 \(i\) 位置的值改成 \(p_i\),然后如果有 \(p_i\),那把 \(p_i\) 位置的值改成 \(+ \infty\)(一开始都要初始化成 \(+ \infty\)) 。

然后再询问的话,查到的就都是这个区间里的最后一次出现的那个数了,就不会GG。


标签:晚测,一个,线段,集训,数据结构,智商
From: https://www.cnblogs.com/Leirt/p/18500209

相关文章

  • 【数据结构与算法】之栈详解
    栈(Stack)是一种基本的线性数据结构,遵循后进先出、先进后出的原则。本文将更详细地介绍栈的概念、特点、Java实现以及应用场景。1.栈概念概述想象一摞叠放的盘子,你只能从最上面取盘子,放盘子也只能放在最上面。栈就像这样一摞盘子,它只有一个开口,称为栈顶(Top)。另一端封闭,称......
  • 【数据结构与算法】之队列详解
    队列(Queue)是一种重要的线性数据结构,遵循先进先出、后进后出的原则。本文将更详细地介绍队列的概念、特点、Java实现以及应用场景。模运算小复习:a%b的值总是小于b5%4=1  5 %2=11%5=1  4%5=41.队列概念概述想象一下排队买票,先排队的人总是先买......
  • 大二上 数据结构与算法笔记 20241024
    一.inline在C和C++编程语言中,inline关键字是一种函数修饰符,用于建议编译器在编译时将函数的代码直接插入到每个函数调用的地方,而不是进行常规的函数调用。这样做的目的是减少函数调用的开销,尤其是在函数体较小且调用频繁的情况下。作用和优点:减少函数调用开销:通过将函数......
  • 数据结构与算法——双链表的实现
    上次学习了单链表,这次来学习双链表。二者之间的区别是,单链表中的每个结点只存有后继结点的地址,而双链表中则存了两个地址,一个是前驱结点的地址,一个是后继结点的地址。结构体structListNode{ intelement;//数据域 structListNode*next; ......
  • 数据结构懒标记时间戳差异问题
    对于数据结构打lazytag后节点时空不统一问题的解决可以看看之前写的一篇文章线段树初步理解,里头初步介绍了懒标记的作用与使用懒标记所带来的时空不统一的问题。实际上是可以将懒标记拓展到其他数据结构上的。就以经典的毛毛虫链剖分举例子,就是现在我要给树上的与给定......
  • 线段树初步理解
    今天ZRtes爆零咯,就不在tes里写了引言:以前一直只会用线段树2,线段树也是一直当做工具使用,一切线段树的科技除了线段树分治基本都不会,因此特作此文记之线段树的lazytag与pushdown为了保证时间复杂度,线段树在做区间修改的时候引入了lazytag的概念,目的是为了节省没必要的时......
  • 【C++篇】栈的层叠与队列的流动:在 STL 的韵律中探寻数据结构的优雅之舞
    文章目录C++栈与队列详解:基础与进阶应用前言第一章:栈的介绍与使用1.1栈的介绍1.2栈的使用1.2.1最小栈1.2.2示例与输出1.3栈的模拟实现第二章:队列的介绍与使用2.1队列的介绍2.2队列的使用2.2.1示例与输出2.3队列的模拟实现2.3.1示例与输出第三章:优先队......
  • 第十三章_数据结构与集合源码二
    目录8.Map接口分析8.1哈希表的物理结构8.2HashMap中数据添加过程8.2.1JDK7中过程分析8.2.2JDK8中过程分析8.3HashMap源码剖析8.3.1JDK1.7.0_07中源码1、Entry2、属性3、构造器4、put()方法8.3.2JDK1.8.0_271中源码1、Node2、属性3、构造器4、put()方法......
  • 【数据结构】-数组
    数组特点:数组的地址连续,可以通过下标获取数据。1.数组扩容步骤:$1.创建一个比原来数组更长的新数组$2.让原来数组当中的数据依次复制到新数组当中$3.让arr指向新数组,原数组空间释放  2.数组插入2.1最后位置插入$1.判断数组当中有没有位置,用size记录当......
  • 新高一暑假第一期集训恢复性训练【数据结构-晚测】(并查集)(补)
    新高一暑假第一期集训恢复性训练【数据结构-晚测】(并查集)(补)[CF1290C]PrefixEnlightment带权扩展域并查集。任意三个子集的交集为空集,显然,一个点最多只能在两个集合中出现,这样所有集合的大小之和是\(\Theta(n)\)的。一个在两个集合中出现的点ii相当于连接了\(2\)个集合......