Loading

6.9 考后总结

时间安排

7:30--8:30 读题,T1貌似是扫描线,T2估计是个结论的博弈,T3可能是 dp 。
8:30--9:30 T1,扫描线以下,然后记一下历史累加值。
9:30--10:30 T3,一开始看错题以为是普通的森林,想了想以为可以动态 dp 什么的。后来发现存在基环树。断环成链,可以有暴力 dp 。对于树的部分发现方案几乎是唯一的,只是环不好处理。
10:30--11:50 T2,先写一下暴力。手玩一下小数据,没有发现什么规律。测试极限数据发现有点卡,想办法卡常。

回顾反思

T2:
赛时没有注意到 sub1 没有对值域限制, RE 了。分段时要注意分段条件。

若干堆石子,每次最多从 k 堆石子中取若干个,至少 1 个。这是 nim-K 博弈模型。
考虑对于每一堆石子数 \(a_i\) ,二进制分解,枚举位数计算所有堆在这一位上的和(不进位),若每一位这样的和 \(\mod (K+1)\) 都等于 \(0\) ,则后手胜。
即定义一个二进制下每一位的数模 \(K+1\) 的不进位加法,后手胜当且仅当所有 \(a_i\) 和为 \(0\)

题目即为求一个集合,使得任意子集的 \(a_i\) 和都不为 \(0\) ,那么就是要集合内的 \(a_i\) 在上述新定义的加法的意义下线性无关。线性基即可。

T3:
赛时瓶颈在于环怎么办。
可以断开 1 与父亲的边,然后枚举 1 的开关状态,判合法取最优。
另外赛时没有注意到无论是变颜色还是变父亲,本质设计的操作是改变一个点是否开关,进而影响到其为根的子树,也即将子树内所有点取反。
那么 splay 维护就行了。

一个技巧是,对每个店分别定义左右括号,维护时使括号序列呈欧拉序,这样一个子树就对应根的括号对应的区间。可以方便的使用平衡树维护子树的信息。

posted @ 2023-06-09 20:31  Cafard  阅读(11)  评论(0)    收藏  举报