UNR #5 航天飞机调度

发布时间 2024-01-11 23:06:58作者: zhouhuanyi

如果原问题将三角剖分图换成一条链后可以使用树状数组,线段树与音符大师的乱搞 \(\text{trick}\) 三种不同的方法做,但由于三角剖分图比较复杂,这里第二种方法更易于扩展。

对于一般满足四边形不等式的决策单调性问题,通常我们会将一个满足四边形不等式的 \(w(i,j)(i<j)\),将其扩展成一个 \(W(i,j)\),满足当 \(i<j\)\(W(i,j)=w(i,j)\),而当 \(i\geqslant j\)\(W(i,j)=-\infty\)。这样 \(W\) 为一个蒙日阵,最值单调,此时在这个矩阵上定位最值以及修改会比较方便。

而这个题不一样的地方在于一开始给出的矩阵 \(W\)\(i\geqslant j\) 时是有实际意义的,这样 \(W\) 并不为一个蒙日阵,最值不单调,但实际上最值位置形成了一个环状单调的结构,即如果将这个序列首尾相接之后存在一个断环为链的方式使得其变得单调。如果要让原问题变得更加方便,那么应当将原本的环问题变为链问题,于是我们可以采用断环上的一条边将其变为链再将链复制一遍的 \(\text{trick}\),这样我们可以选择只保留 \(i\leqslant j\) 的部分,使其变为蒙日阵。

于是我们构造这样的一个 \(n\times 2n\) 的矩阵 \(W\),当 \(i\leqslant j<i+n\) 时为 \(w(i,(j-1)\mod n+1)\),其余时候为 \(-\infty\),这样对于每一个 \(i\),都刻画了以 \(i\) 为起点在环上顺时针走依次走到的 \(n\) 的点,却不失蒙日阵的性质。

那么我们就可以把这个矩阵当作一个数据结构,按第二种方法的方式用这个数据结构进行维护,容易发现在这个数据结构上单点取最值是容易的,直接用 \(set\) 扩展当前决策点的扩展区间即可,复杂度 \(O((n+q)\log n)\)