人类智慧题

赛时绝对想不到的人类智慧。

\(\text{2022.8.3} \ \text{gdfz} \ \text{contest} \ \text{A}\)

题意:给定一个 \(n \times m\) 的网格图,两人在图上博弈,图上有硬币,障碍,空地,轮流操作。

每次操作可以将任意一个硬币移动,假如这个硬币位于 \(i,j\) ,那么它可以移动到 \((i+1,j),(i,(j+1) \% m),(i,(j-1) \% m)\) 其中之一,移动到的位置没有障碍。

不能移动到这个棋子之前移动到的位置,不能操作的输。求谁必胜。

眨眼一看这是一道 \(ex\) 题,但他显然可以看成每个硬币。

那我们开始玩性质:

\(sg_{i,j}\) 表示 \((i,j)\)\(sg\) 值, \(L_j\) 表示现在这一行第 \(j\) 个位置不能向右走的 \(sg\) 值, \(R_j\) 表示现在这一行第 \(j\) 个位置不能向左走的 \(sg\) 值。

那么根据 \(sg\) 的定义: \(sg_{i,j}=\text{mex} (sg_{i+1,j},L_{i-1},R_{i+1})\)

我们发现对于这一行有障碍物的时候 \(L,R\) 是不变的,所以我们考虑没有障碍物的情况。

我们发现 \(sg\) 之多为 \(3\) ,对于 \(L,R\) 会随着求点变动而变动。

\(Lf_{j,k}\) 表示 \(L_{j}=k\) 时, \(L_m\) 的值;\(Lt_{j,k}\) 表示 \(L_{1}=k\) 时, \(L_j\) 的值;\(Rf_{j,k}\) 表示 \(R_{j}=k\) 时, \(R_1\) 的值;\(Rt_{j,k}\) 表示 \(R_{m}=k\) 时, \(R_j\) 的值。

对于 \(Lf,Rf,Lt,Rt\) 可以 \(O(n)\) 预处理,考虑 \(sg_{i,j}\) 怎么求。

根据定义 \(sg_{i,j}=\text{mex} (sg_{i+1,j},L_{j-1},R_{j+1})\)

考虑求出 \(L_{j-1}\) ,由于 \(Lt\) 的定义, \(L_{j-1}=Lt_{j-1,L_1}\) ,而 \(L_1=\text{mex} (L_m,sg_{i+1,1})\) ,而根据 \(Lf\) 的定义又有 \(L_m=Lf_{j,L_j}\)

我们考虑 \(L\) 的定义,显然 \(L_j\) 必定是没有取值的,而保证不对答案产生影响,设 \(L_j=3\) 即可。

\(L_{j-1}=\text{mex} (Lf_{j,3},sg_{i+1,1})\) ,这玩意显然 \(O(1)\)

对于 \(R_{i+1}\) ,此时同样可以求解。

复杂度 \(O(nm)\)

\(\text{2022.8.4} \ \text{gdfz} \ \text{contest} \ \text{D}\)

题意:给定 \(n,m,a,b,c,mod\) ,求 \(n\) 此次操作后, \(a,b,c\) 都为 \(m\) 的倍数的方案数对 \(mod\) 取模。

操作如下:

  1. 取一个数 \(+1\)\(-1\)

  2. 三个数 \(+1\)\(-1\)

真的人类智慧,赛时 \(ac\) 都是神仙。

我们考虑转化操作,我们将 \(a,b,c\) 整体加 \(n\)

这样每次操作都要全体 \(-1\)

操作将转化成:

  1. 取一个数不变,其他 \(-1\)

  2. 取一个数 \(-2\) ,其他 \(-1\)

3.不变。

  1. 全体 \(-2\)

我们考虑如下 \(3\) 个操作组合成上面任意一种操作。

我们将操作描述成一个三元组:

\((0,-1,-1)\)
\((-1,0,-1)\)
\((-1,-1,0)\)

对于如上 \(3\) 种操作,每种取的方案数即为 \([0,n]\)

我们设其分别取 \(x,y,z\) ,考虑算出 \(x,y,z\) 在模 \(m\) 意义下的取值。

有:

\(y+z\equiv a+n\pmod m\)

\(z+x\equiv b+n\pmod m\)

\(x+y\equiv c+n\pmod m\)

\(A=a+n,B=b+n,C=c+n\)

\(m \% 2 = 1\) 时,显然的事实是方程有唯一解。

\(x \equiv \dfrac{A+B+C}{2}-A \pmod m\)

\(y \equiv \dfrac{A+B+C}{2}-B \pmod m\)

\(z \equiv \dfrac{A+B+C}{2}-C \pmod m\)

对于 \(m \% =0\) 时,显然解是 \(O(1)\) 的。

对于 \(A,B,C\) ,因为 \(x,y,z\) 都是模 \(m\) 意义下的,只有可能是 \(A,A+m,B,B+m,C,C+m\)

枚举 \(A,B,C\) 取值,算出 \(x,y,z\) 即可。

复杂度 \(O(n+m)\)

posted @ 2022-08-04 18:18  Detect-Perplexity  阅读(102)  评论(0编辑  收藏  举报