离线
lamentropetion
---
展开
-
【离线】牛客小白月赛39 G
这里有个容易想错的点,对于 Bit 维护的 y 轴,query(x)维护的是 y 轴上 <= x 的值,也就是说,query是个 y 轴上的前缀和。然后去遍历值域,如果值域很大的话需要排序+离散化,但是这里不需要。这样就直接写就好了,注意询问需要用 vector 存,否则会出错。确定好两维:x 轴是1 ~ n, y 轴是 k 的大小。query(x)是个前缀和,它不是 y轴 上某个数的值。这种离线Bit,一般都是去考虑二维数点就能写清楚了。原创 2023-12-16 01:45:37 · 528 阅读 · 0 评论 -
【模拟 + 离线】CF1719 C
然后用双端队列模拟的过程中统计答案,用指针idx指向当前是哪个询问,然后idx ++保存答案。离线操作,其实就是把询问保存下来,按关键字排序,然后按关键字模拟,保存答案。模拟完n轮之后,可能会有询问的轮数很大,因此需要额外处理这些轮数很大的询问。一开始开了个前缀和数组直接模拟然后统计,T了,因为空间直接是N*Q的。这道题我们按轮数模拟,因此我们可以把询问保存下来,按轮数排序。对于最大值左边的数,答案可以直接模拟轮数得到。对于最大值,答案直接就是pos。对于最大值右边的数,答案就是0。手摸以下样例容易发现。原创 2023-08-08 11:51:40 · 120 阅读 · 0 评论 -
【MST+离线】CF1851 G
【代码】【MST+离线】CF1851 G。原创 2023-07-26 23:33:17 · 112 阅读 · 0 评论 -
代码源 扫描线权值线段树 板子
这道题也用了离线的思想,将询问排序,在维护线段树的同时维护答案数组。二维数点本质上也是扫描线,即枚举一个指针,去枚举一棵线段树。在这里,枚举纵坐标,线段树维护一个横坐标区间内有多少点。原创 2023-07-04 16:40:25 · 111 阅读 · 0 评论 -
【离线+筛法+MEX】阿宁的质数
但是这里有个坑,就是一个位置x可能对应着多次询问,所以如果存下来的话就会覆盖掉。我们在离线的时候总是希望把询问存下来。因此不存,直接预处理,然后输出即可。原创 2023-06-17 21:39:07 · 35 阅读 · 0 评论 -
【离线】岛屿的数量
记录一下位置就好了,vis记录是否被淹没,如果两边都被淹没过了,那么贡献-1,否则贡献+1。一开始想的是把询问按h排序,把高度也按val排序,这样一个指针扫完就可以了。事实上确实是这么做的,但是我却在答案统计上出了问题,因为岛屿数量和位置有关。手摸了一下发现,淹没山峰的贡献是-1,淹没山谷的贡献是1。因此统计了一下每个深度山峰和山谷的数量,然后离线。然后想的是,既然有关,那就不能把a数组排序。在单指针扫描的基础上进行答案统计就行了。正解是这两种解法的结合版。原创 2023-06-11 21:50:11 · 45 阅读 · 0 评论 -
【离线+抽象并查集】代码源每日一题div1 数字替换
注意到,如果直接模拟,复杂度高的原因是,操作2会重新遍历所有数,然后修改,从而变成n^2。如果倒着做,那就变成了,先把数字替换,再去插到左边,然后倒序输出就可以了。那么,如何替换数字呢,用并查集维护。所以,离线是为了避免这种情况。这样,我们就解决了复杂度问题。原创 2023-06-11 20:29:23 · 58 阅读 · 0 评论 -
代码源每日一题div1【离线+树状数组】数数
具体地说,遍历询问的时候,可以用一个指针维护val原创 2023-06-11 11:06:53 · 87 阅读 · 0 评论 -
【MST+离线】ABC235 E - MST + 1
有一个图,它有MST,对于每次询问都问是否能加一条边,使得该边在新图的MST中,如果是输出Yes,否则就是No。为什么,因为它是从小到大加边的,所以此时如果成环了,环内其余边都原创 2023-05-01 13:43:46 · 781 阅读 · 0 评论 -
【离线】牛客小白月赛71 D-猫猫与主人
但是,如果询问的顺序不是按x轴从小到大的,那么就不能维护,如果是,那么只需要在从左到右遍历的过程中就能维护了(DS思想)这样,对于每一个主人,答案就是他的左上方那几个点的y坐标的最大值。所以只需要将询问离线,然后从左到右遍历即可。把猫猫和主人的属性想成二维坐标。原创 2023-04-25 16:05:57 · 132 阅读 · 0 评论 -
【树状数组+离线】[SDOI2009]HH的项链
因此我们在遍历询问的时候,如果一个数在之前有被访问过,就将前面那个数从1变成0,然后将该位置置1,这样询问区间内数字种类个数就可以转化成区间加了。因此考虑将询问离线处理,将这些区间按右端点排序,然后用树状数组维护一个序列。对于每个种类的数只保留其最右端的那个数的序列。相当于对于一个种类的数,只保留一个数。每次询问输出该区间内不同的数的个数。考虑保留位置最靠右边的那个。原创 2023-04-23 19:53:19 · 60 阅读 · 0 评论