【题解】CF1500E Subset Trick
设排序后的集合为 \(a_{1\sim n}\),则对于 \(|S|=i\),满足 \(x\in [\sum_{j=1}^i a_j,\sum_{j=n-i+1}^n a_j)\) 的 \(x\) 一定不合法。那么我们求得也就是 \(|\bigcup_{i} [pre_i,suf_i)|\)。
然后基本可以转化为 \(\sum \max(pre_i,suf_{i-1})\),考虑处理取哪边的问题。
\(pre_{i}\ge suf_{i-1}\Rightarrow pre_i\ge pre_n-pre_{n-i+1}\Rightarrow pre_{n-i+1}\ge pre_n-pre_i\Rightarrow pre_{n-i+1}\ge suf_{n-i}\)。
也就是这个取哪边是对称的。然后由于右半部分一定是只有一个交点,所以可以二分。
那么维护 \(pre_i,\sum_{j\le i}pre_j\) 就好了,\(suf\) 同理。那么这些都可以使用线段树维护。
浙公网安备 33010602011771号