QOJ9540 Double 11
挺魔怔的啊。柯西不等式得,要求的就是把序列分组,使得 $\sum_i \sqrt{sum_icnt^i}$ 最小。
排序(?),wqs 二分(。),决策单调性(。)。我也不知道为什么但是确实是这么做并且一眼看上去也是这么做/kx/kx。
QOJ9522 A Simple String Problem
考虑单串怎么做。一个神秘做法是分治(?),然后要求跨过分治中心。枚举长度之后要求两边的 LCP 拼起来长度大于等于长度。好像也能做(?)。
一个更典的做法是枚举串长之后定长分块(优秀的拆分)。需要求调和级数次数级别的 LCP。
两个序列定长分块还是能做,就是一万种大分讨。
QOJ9456 012 Grid
如果左下,右上都是 $1$,方案数可以用 LGV 引理求出。但是有点毛病。
枚举 $1$ 的一个矩形,然后列列式子发现是一个 FFT 啥的。
QOJ9482 Count Pseudo-Palindromes
做到 $\mathcal O(n\log n)$ 非常简单。什么一个点对会 ban 掉一个矩形然后扫描线啥的,看起来就常数巨大。
有一个很牛的做法:处理序列中第一次出现的数的答案,然后再倒过来做一遍就行了。对 $r$ 扫描线,维护所有合法的 $l$。
首先新加入了一个 $r$,如果 $a_r$ 是第一次出现那没有问题,否则需要删掉 $>lst_{a_r}$ 的所有 $l$。
然后考虑会贡献到哪个数上。考虑 $[1,r]$ 只出现一次的数的位置集合 $S$,则一定是 $S$ 中最大的元素才能统计到贡献,并且贡献就是在最大值和次大值中间的 $l$ 的个数。
简单处理的话就是上个 BIT 维护 $l$,一个栈维护所有能用的 $l$ 来支持 pop
,一个 set
来维护集合 $S$,复杂度是 $\mathcal O(n\log n)$。感觉做到 $\mathcal O(n)$ 也是简单的。
QOJ9486 Random Mex
不牛。推推式子发现是斯特林数。
QOJ9490 Sub Brackets
奇偶括号相交且不包含不合法。所以跑一个二分图最大独立集就行了。