2023.6.2 NOI模拟赛总结
最丑陋的一集。
1.时间安排
7:10~8:30
T1:看上去很简单的计数,只有四种颜色,唯一的难点在于区间不能填4种颜色的限制,感觉可以搞搞容斥。
T2:本质是个DP题,\(O(n^2logn)\) 是简单的,一个部分分时查询区间长度为1也许可以用线段树这类的搞搞预处理。
T3:与位运算相关的题,感觉是个数据结构,看上去只会做暴力和 \(k\leq 6\) 的预处理,感觉离线和其他部分分没什么用。
推T1的容斥推到8点半也没推出来啥,暴力DP又需要记录四种颜色第一次出现的位置是 \(O(n^5)\),感觉很寄,只会爆搜和只有一个限制区间的分。
8:30~10:00
先把 T2 和 T3 的暴力写了,然后把 T2 的预处理 ST 表,查询类似线段树拆分成 log 个独立区间的做法写了,不难写。
T2 的这个预处理 ST 表的做法场上没想到怎么样拓展到题面那种特殊的单败赛,瓶颈在于如果强行钦定这个点是额外拿出来的点区间内钦定的点数量会不止是1,就难办了。
10:00~12:00
把 T1 能写的写了,然后继续推容斥,仍然什么都没推出来。
result:
T1:35 T2:55 T3:35
2.总结
T1:
小丑竟是我自己。
\(O(n^5)\) 的DP实际上只需要记录其中两种颜色的状态,因为考虑 \(i\) 和 \(i-1\) 的颜色一定不同,这样就是简单 \(O(n^3)\),不知道为啥自己shaber没想出来。
尊重T1,尊重优化暴力,不要尊重容斥。
甚至正解也不需要容斥,考虑把13和24分别看做一类颜色,那么整个序列一定是奇颜色和偶颜色交替的,考虑如果两个相邻的奇偶性相同的颜色点对应的实际颜色相等,那么就把后者放一个标记,那么区间的限制就是不能同时有奇偶标记。
只需要设 \(f_i\) 表示前缀 \(i\) 的序列 \(i\) 放有标记的方案数,用前缀和优化就能轻松 \(O(n)\)。
T2:
小丑还是我自己。
其实题面那种特殊的单败赛也是可以处理的,考虑用 \(f\) 表示正常的,\(g\) 表示特殊的,合并时候用 \(g_l*f_r+f_l*g_r\) 来更新当前区间的 \(g\) 就可以避免区间内出现多个被钦定的点的情况了。
就多加这一个预处理就好了,剩下的线段树上查询和 55 分的没有区别。
复杂度 \(O(nlogn)\)。
T3:
非常抽象的位运算题,题解不打算再整理一遍了,太抽象了。
放下原题解吧,防止之后遗忘。


咕咕咕。

浙公网安备 33010602011771号