2024.2.22 LGJ Round

A

你需要求 \(n\times m\) 格子里随机撒 \(k\) 个点,期望扫多少次使得相邻的格子没有同时有点。
\(n\times m\le 80,k\le 20\)

直接状压求出方案数即可。

B

你需要维护一个数组,支持区间求和
或执行覆盖操作 for i:=l to r do a[i]:=a[i-k]
或区间回溯成一开始的数。

可持久化平衡树。

C

\(n\times m\) 的棋盘,格子上有棋子,有的棋子是翻转的。你每次可以翻转一列或一行。
\(A\)\(B\) 轮流翻转某行或某列,每行/列只能被翻转一次。
当所有棋子都在正面或没得翻转时,游戏结束。若进行了最后一次操作,那么收益为 \(1\)
若最后棋子都在正面,那么每人收益为 \(2\),求 \(A,B\) 最大收益。

先判断是否有解,可以对于每个棋子的状态得出所在行列状态关系。是异或关系。
可以用加权并查集判断是否有解。若无解,那么就要操作完所有行列。
有解,我们发现并查集每个连通块都是一个独立的平等游戏。
我们分讨奇偶性,用 SG 函数即可。

posted @ 2024-02-22 21:27  GloriousCc  阅读(4)  评论(0编辑  收藏  举报