题解 CF1368G Shifting Dominoes

因为空格只有两个,记录空格的状态远比记录骨牌的状态方便。考虑将骨牌的移动转为空格的移动。如 LR* 变为 *LR

可以根据四周的骨牌让空格进行转移,建出一个有向图,$(x,y)$ 连向 $(x\pm 2,y)$ 和 $(x,y\pm 2)$,前提是连边的方向和这两个位置之间骨牌的方向相同。

发现这张图入度最多为 $1$,因为一个位置最多被一张骨牌覆盖。且不存在环,若存在环,则空格路径形成的图形内部格子数必定为奇数,这个可以用毕克定理证明。

所以这张图是外向树森林,对于每一张骨牌考虑删去其后的贡献。

一个很好的性质是,将棋盘黑白染色,一张骨牌恰好覆盖一个黑格子和一个白格子。而每棵树内格子都是同色的(因为每次转移 $x+y$ 奇偶性不变),所以两个空格到达的位置互不相交。

考虑求出每个位置的 DFS 序,不妨设该骨牌黑色格子编号为 $x$,白色格子编号为 $y$,因为是外向树森林,$x$ 可达的所有位置即 $[dfn_x,dfn_x+siz_x-1]$,$y$ 可达的所有位置即 $[dfn_y,dfn_y+siz_y-1]$,这个矩形内的所有点即两个空格的所有可达状态。也即删去该骨牌可到达的所有局面。

于是我们要求的就是所有的骨牌对应的矩形并,扫描线即可。

当然这个题有环也可以做,变为外向基环树森林,特殊处理环上的点即可。

posted @ 2023-10-06 16:54  Terac  阅读(17)  评论(0)    收藏  举报  来源