CWOI 6.28 考试题解 ABC
A 致敬传奇捆绑测试题目
打表题。
先打出最小的排列,发现是 \(\begin{cases} [1],n = 1 \\ [2,1],n = 2 \\ [3,1,2,\ldots,n],\text{Otherwise} \end{cases}\)。
然后再去打答案表,发现排除前 \(3\) 个特判之后,剩下的以 \(8\) 为一个周期,并且有如下规律:
做完了。
B 串串
赛时想到了 \(\frac{1}{4}\) (?)
因为字符集不大,所以考虑枚举最大最小的字母分别是什么。
我们给现在钦定的最大字符赋值为 \(1\),最小字符赋值为 \(-1\),然后求最大子段和。
但是这么做是 \(\Omicron(n|\Sigma| ^ 2)\) 的,考虑优化,我们直接记录每个字母的位置,然后归并起来,在归并过程中计算贡献。
需要注意,最小值必须出现,所以可以直接将 \(dp\) 初始值设为 \(-1\)。
C 计算几何
首先有个关键的性质:
设 \(L _ i = \max j,j \lt i \wedge h _ j \le h _ i,R _ i = \min j,j \gt i \wedge h _ j \le h _ i\),则选取的点对一定是 \((L _ i,i)\) 或 \((i,R _ i)\)。
写一下证明:
考虑反证法,设最优决策是 \((i,j)\),且 \(i \neq L _ j \wedge j \neq R _ i\)。
若 \(h _ i \le h _ j\),则有 \(L _ j \gt i\),即 \(w _ j - w _ {L _ j} \lt w _ j - w _ i\),并且有 \(h _ i + h _ {L _ j} \le h _ i + h _ j\),所以一定不如 \(L _ j\) 优。
\(h _ i \gt h _ j\) 类似。
然后转化一下题意:有 \(2n\) 个点 \((x,y)(x \lt y)\),每个点有权值 \(v(x,y) = (w _ y - w _ x)(h _ x + h _ y)\),一个询问即是求 \(\min \limits _ {l \le x \lt y \le r} v(x,y)\)。
典中典二维数点,要求单 \(\log\) 直接扫描线,树状数组维护后缀 \(\min\),对于修改操作,把 \(x\) 挂到 \(y\) 上,遇到就在 \(x\) 位置更新 \(v\),询问把 \((l,id)\) 挂到 \(r\) 上,遇到一个就查询 \(l\) 的后缀 \(\min\)。