省选博弈专题

省选博弈专题

  1. Games on DAG

    发现 \(n \le 15\),结合一些东西容易想到枚举子集。

    容斥一下等价于求 \(sg_1 = sg_2\) 的个数,想到按照 \(sg\) 分层图。

    发现如果正着做,对于当前层的每个点都需要之前的层来连边,也就是说要维护之前每层的点集,显然不可做。

    考虑倒着做,发现其只需要当前这层对每个之后层的点连边即可,不区分具体层数,十分可做。

    于是我们形式化的描述一下限制,设当前将要处理集合 \(S\),之前已经处理集合 \(T\)\(K \cup T = S \land K \cap T = \varnothing\),即 \(K\) 是这层新增节点。

    对于 \(u \in S\)

    \(u \in T\)\(u\)\(K\) 内的点任意连边或不连。

    \(u \in K\)\(u\)\(T\) 内的点至少连 \(1\) 条边。

    处理一下 \(u\) 到集合 \(X\) 的连边数即可 \(\mathcal{O}(3 ^ n n)\)

  2. Black and White Tree

    这个是水了。

    容易发现先手一定能牵制后手,即先手每次选一个点使得起所有儿子都是叶子,如果这个点不只有一个儿子,则先手必胜,并且一定不劣。

    于是模拟一圈圈剥叶子即可,其本质上是一棵树的完美匹配,有个还算有点意思的结论是其等价于没有一个点有奇数个儿子。

  3. Candy Piles

    首先先降序排序,画出网格图可以发现其等价于每次消行或消列,等价于从左下出发每次向上或向右走一个。

    打个表容易发现其副对角线上的所有 \(sg\) 值相等,证明也不太难,简单分讨即可。

    注意判一下可能会在终点处有相等,即可以从右转移。

  4. Decrementing

    你先发现一个 \(1\),如果有 \(1\) 则所有 \(gcd\) 都是 \(1\),于是问题就是统计偶数个数(因为要剩一个)。

    一下所有奇数均不包括 \(1\)

    首先显然的是因为保证任意时刻 \(\gcd = 1\) 所以不可能全是偶数。

    若有奇数个偶数,此时先手只要保持即可胜利,即将一个偶数变成奇数,这样后手时至少有两个奇数,无论如何选都无法改变奇偶性。

    若有偶数个偶数,此时先手只有一个翻盘的机会,若有唯一一个奇数,则可以将这个减成偶数在除 \(gcd\),然后吧决策让给后手。

    最多递归 \(log\) 层,复杂度 \(n \log ^ 2 n\)

  5. Rearranging

    首先先考虑青木如何做,考虑每个数最早能放到哪,发现任意两个不互质的数不会交换,于是建图,将 \(u\) 于在它后面且不和他互质的数连单向边,最后就是跑最大拓扑序。

    考虑高木的操作,可以看成是对每个连通块定向成 DAG。

    比较显然的贪心定向就是 dfs 每次选最小的点。

  6. 取石子游戏

    再次被背刺。

    考虑 \(dp_{l,r}\) 表示 \(l, r\) 是否先手必胜。

    发现没法转移,考虑加一维, \(L_{l,r,v}, R_{l,r,v}\) 表示在左、右加一个数 \(x\) 是否先手必胜。

    发现状态太大了,考虑键值互换,发现对于任意一边其最多有一个值先手必败,考虑若有两个可以将大的那个经过一步转移到小的,显然矛盾。

    然后就是逆天分讨转移,我懒得写了,建议参考其他题解。

7、8 看鲜花

posted @ 2025-01-08 19:57  5k_sync_closer  阅读(49)  评论(5编辑  收藏  举报