随便做了些博弈论的题。
无。
无。
本周生病,摸了
无
无
无
无。
Codeforces Round 665 (Div. 2) zars19 DONE
Educational Codeforces Round 94 (Rated for Div. 2) zars19 DONE
来源:CF1401F
tag:线段树。
概述:给出 $2^n$ 大小的数组,要求支持一些操作。包括单点修改、区间查询、将 $2^k$ 大小的块两两配对左右交换、将 $2^k$ 大小的块内部翻转。
答案:应该是有一个 $O(nq)$ 的异或一个值的做法也很值得看一下。但线段树做法的话还蛮好理解的,交换和翻转操作其实都可以归为对线段树的一些层交换左右子树,记录每层是否需要交换,之后就单点修改区间查询,根据是否交换选择进入左还是右子树即可。
comments:有趣的转换。
来源:HDU3389
tag:阶梯博弈,sg函数
概述:有 $n$ 个格子,每个格子上有 $a_i$ 个卡片,每次移动卡片的规则如下,取第 $B$ 个格子的任意张卡片移动到第 $A$ 个格子中,并满足 $(A+B)\%2=1$ 以及 $(A+B)\%3=0$。最后无法移动的输,给一个局面问先手必胜还是必败。
答案:两个条件可以转化成一个 $(A+B)\%6=3$ ,那么得到每个格子模 $6$ 后的结果,$0$ 会向 $3$ 移动,$2$ 会向 $1$ 移动,$5$ 会向 $4$ 移动。考虑一般的阶梯博弈模型,只要把奇数号的阶梯作Nim博弈即可,这里也同理,把模 $6$ 结果为 $0,2,5$ 的格子做Nim博弈(因为 $1,3,4$ 有 $sg=0$ 的状态)。
comments:合并两个条件,然后转换成经典的阶梯博弈。