「考试反思2021-03-27」前往 A.进攻! 字符串 序列
有一种容斥:(1 imes 1+2 imes 2-1 imes 2-2 imes 1),直接在矩形里面数出现方式就能证明正确性
考虑如何统计 (1 imes 1) 的小矩形的出现次数,一种暴力是 $Theta(n^4) $ 扫描所有矩形,然后 (O(1)) 差分
考虑每个位置的差分贡献也就是其在矩形四个角中出现的次数,所以可以转化成统计其作为某个角有多少个举行覆盖之
使用单调栈(悬线法)求最大子矩形就行了
字符串
将所有的字符串拍到一个序列上面,同时用 (trie) 树维护其对应的下标
使用莫队离线处理询问,维护 (f(x)) 的值可以在 (trie) 树上开数组
对于新满足条件的点,或者恰好不满足条件的点要删掉或者加入,这个使用 (set) 找前驱后继可以维护
在莫队的过程中块长开到 (sqrt{sum s}) 不是很行,貌似看 (2200/4500) 都是能过掉的
然而这并不是标算,标算不需要使用 (set),但是需要回滚,复兴了回滚,但是还不会这题的做法
序列
确实是保序回归题
先简单记录做法:对所有数组里面的值进行整体二分
对于当前阀值 (mid),大于之的权值为 (1) ,反之为 (0)
那么限制的实际含义转化为:作为最小值而且权值为 (1) 的,对应区间也要是 (1)
对应最大值且是 (0) 的,对应区间也是 (0),跑最大权闭合子图
也就是 (S o val[0],val[1] o T),点之间的边是 (infty)
如果最终源点仍然不可达其,那么最优解在右侧区间,反之在左边,那么继续分治
这个题里面需要附加线段树优化建图
正确性正在看论文