JOISC 2021 题解

JOISC21 フードコート (Food Court)

首先我们发现我们这个删除实际上可以假删除,我们每次问询时求出这个队列目前被删了几个(维护区间加,区间 \(\max(0,A-x)\))就可以把删除操作给弄掉了。

然后我们考虑对商店做扫描线!因为我们现在其实就是对商店的单点问询,我们这个加入操作也可以在左端点加入,右端点删除,再开一个线段树维护每个时刻的团体是否出现,然后再在线段树上二分就好了。

https://qoj.ac/submission/84204

JOISC21 道路の建設案 (Road Construction)

首先考虑平面曼哈顿距离最近点对的一个分治做法。我们对于分治线 \(x\),我们从上到下扫,然后每次扫问询最小值,加入一个点。我们考虑把这个过程可持久化了,这样我们就能查询到在这一次分治过程中这个点的 \(k\) 小值。

然后我们对所有分治局面,用堆维护。我们每个局面维护这个局面 \(S\) 中的点统计了几个值 \(p_{S,x}\),以及目前这个局面的还能使用的最小值以及在哪里取到的,再用一个堆维护每个点的情况。然后我们每次取出最小值最小的局面 \(S\),找到 \(S\) 中最小值所对应的 \(x\),求出这个局面下这个点的 \(p_{S,x}+1\) 小值,然后更新一下这个在堆中的取值。复杂度是双 log 的。

https://qoj.ac/submission/84012

JOISC21 ビーバーの会合 2 (Meetings 2)

我们发现奇数的时候一定为 \(1\),偶数设为 \(2k\),那么合法的点一定在一条路径上,路径端点 \(u,v\),然后把路径给割开后,\(u,v\) 所在连通块的大小都 \(\ge k\)。于是我们考虑点分治,就好了。

https://qoj.ac/submission/85202

JOISC21 ボディーガード (Bodyguard)

我们考虑把它二维化,然后再变换一下坐标系(\((t,x)\) 变换成 \((x-t,x+t)\)),每个 VIP 的路径就变成了有一堆横向或纵向线段,然后我们相当于从一个起点出发,可以往下或往右走,然后走到线段上会有一个贡献。我们暴力把它离散化后扩成一个完整的网格图,然后 \(O(n^2)\) 做一次 DP,\(f(i,j)\) 表示从 \((i,j)\) 开始走的最大贡献和 。规定一下,这里的坐标在平面直角坐标系上考虑,即向右 \(x\) 增大,向下 \(y\) 减小。

然后我们考虑如何从一个不在网格图上的格点的贡献。实际上,在非网格上走一定不优,所以我们实际上一定会先竖直地往下走,然后走到一个网格图上的线,然后走到向右的那个格点。或者先水平向右,走到一个网格线,再向下。

暴力 \(O(qn)\) 在原题恐怖的 25s 时限下是可能是可过的吧。不过这个显然可以优化。我们离线下来。先考虑向下走到格线。对于 \(i,i+1\) 两列之间的询问点,我们要求的是其实就是对于 \(j\) 所在列的真实坐标位于 \((x,y)\) 下面的 \(\max_{j} f_{i+1,j}+p_{x,y}w_{i,j}\),其中 \(p\) 表示 \((x,y)\) 到第 \(i\) 列的距离,\(w_{i,j}\) 表示从离散化的网格的 \((i,j)\) 走到 \((i+1,j)\) 的单位时间的收受益。注意到相同 \(i\) 情况下 \(f\) 随着 \(j\) 递增而单调不降,于是实际上如果存在变大的 \(w\) 那原本 \(w\) 小的那个一定不优。我们单调栈维护凸壳,然后每次加入的时候额外把 \(w\) 更小的栈顶(栈中显然 \(w\) 单调)给弹掉即可。向右走到格线,本质相同,不再具体展开。

https://qoj.ac/submission/85971

JOISC21 イベント巡り 2 (Event Hopping 2)

考虑求区间图最大独立集的一个贪心:把所有区间按照右端点排序,然后我们暴力往后取。然后我们发现这个对于任意一段数轴上的区间都是成立的,然后我们可以直接倍增求出 \([L,R]\) 包含的所有区间的最多区间数。

然后我们考虑贪心,每次取一个区间就计算一下如果这段区间被这个区间覆盖上了那么剩下的够不够。就好了。

https://qoj.ac/submission/86042

JOISC21 最悪の記者 4 (Worst Reporter 4)

完善了对“后缀取min/max”操作的想法。

看到这个还是考虑维护差分比较简单。因为在后缀 min/max 中我们相当于其实就是要删掉一些差分。而这题的 DP 中还要求两个东西叠加起来。我们发现这其实就是两个差分归并起来。于是 set 启发式合并就好了。

https://qoj.ac/submission/86143

posted @ 2023-05-25 20:11  LarsWerner  阅读(111)  评论(0编辑  收藏  举报