Codeforces Round 940 (Div. 2) and CodeCraft-23 (A-E)

A. Stickogon

题意:给定 \(n\) 根木棒长度,问最多构成几个多边形。

贪心,四边形不会优于三角形。

submission

B. A BIT of a Construction

题意:构造包含 \(n\) 个非负元素的数组,使得 \(\sum a_i = k\),并最大化 \(a_1 \mid a_2 \dots | a_n\)\(1\) 的个数。

如果 \(n = 1\),则 \(a = \{k\}\)

否则:

  • \(k\) 的所有 \(1\) 往低位移,得到 \(1\) 的个数与 \(k\) 相同的最小的数 \(x\),如 \((10100)_2 \rightarrow (00011)_2\)
  • 从低到高往 \(x\) 上添 \(1\),直到大于 \(k\)

最终只需选两个位置填 \(x\)\(k - x\),其余填 \(0\)

submission

C. How Does the Rook Move?

题意:\(n \times n\) 的棋盘上 \(A\) 与电脑轮流下车,\(A\) 白子,电脑黑子,满足:

  • 一行或一列只能存在一个车,不论颜色。
  • \(A\) 下在 \((i, j)\),则电脑下 \((j, i)\)
  • \(A\) 下在 \((i, i)\),则电脑 skip。

\(A\) 先手,给定 \(A\) 的前 \(k\) 步棋,求不同的最终局面个数。

注意到最终局面与前 \(k\) 步棋的位置无关,只取决于于 \(k\) 步之后还剩多少行和列。

不妨让 \(n\) 表示新的行数。

  1. 下在 \((i, i)\) 相当于在剩余列中选出一列。
  2. 下在 \((i, j)\) 相当于白子选一列,黑子选一列。

如果当前下了 \(i\)\(1\) 类棋。

此时 \(n - i\) 一定要偶数,否则 \(2\) 类棋下不完剩余列。

\(j = \dfrac{n - i}{2}\),则问题转化为在 \(n - i\) 个数中选出 \(j\) 对二元组的方案。

钦定白子选的列,然后黑子任意排列,则方案为 \(\begin{pmatrix}n - i\\ j \end{pmatrix} j!\)

所以最终局面数为 \(\sum\limits_{i = 0}^n [n - i \equiv 0 \pmod 2] \begin{pmatrix}n\\ i \end{pmatrix} \begin{pmatrix} n - i\\ j\end{pmatrix} j!\)

submission

D. A BIT of an Inequality

题意:定义 \(f_{l, r} = \bigoplus\limits_{i = l}^r a_i\),求满足 \(f_{x, y} \oplus f_{y, z} > f_{x, z}\) 的三元组个数。

化简原式:\(f_{x, z} \oplus a_y > f_{x, z}\)

区间异或,转化为前缀异或,即 \(s_{z} \oplus s_{x - 1} \oplus a_y > s_{z} \oplus s_{x - 1}\)

  • \(a_y\) 对左式的影响取决于最高位 \(j\)(低位影响的总和小于最高位)。
  • 不等式成立当且仅当 \(s_{x - 1} \oplus s_{z}\) 的第 \(j\) 位为 \(0\),即\(s_{x - 1}\)\(s_{z}\) 的第 \(j\) 位相同。

枚举 \(a_y\)\(s\)\([1, y)\)\([y, n]\)\(0/1\) 个数之积即为答案。

submission

题意:求 \(\sum\limits_{i = 1}^n \sum\limits_{j = 1}^i \begin{pmatrix}i\\j \end{pmatrix}(j - 1)! \bmod j\)

\[\sum\limits_{j = 1}^i \begin{pmatrix}i\\j \end{pmatrix}(j - 1)! \bmod j = \sum\limits_{j = 1}^i \dfrac{i^{\underline{j}}}{j} \bmod j \]

\(j\) 个连续数相乘,\(\lfloor\dfrac{i}{j}\rfloor \cdot j\) 一定被 \(j\) 整除,剩余数在模 \(j\) 意义下依次为 \(1, 2\dots ,j - 1\)

所以原式可以写成 \(\sum\limits_{j = 1}^i \lfloor\dfrac{i}{j}\rfloor (j - 1)! \bmod j\)

威尔逊定理

威尔逊定理

\(p\) 为质数时,有

\[(p - 1) ! \equiv -1 \pmod p \]

证明

\(p = 2\) 时,\((2 - 1)! \equiv -1 \pmod 2\)

\(p > 2\) 时,即证 \(\prod\limits_{i = 2}^{p - 2} \equiv 1 \pmod p\)

方程 \(x^2 \equiv 1 \pmod p\) 成立当且仅当 \(x \equiv 1\)\(x \equiv p - 1\)

所以 \(\forall x \in [2, p - 2]\)\(x^{-1} \in [2, p - 2]\)\(x^{-1} \ne x\)

也就是 \(\dfrac{n - 3}{2}\) 对数两两匹配互为逆元。

推广

\[(n - 1)!\equiv \begin{cases} -1 \,&n = p_i\\ 4 \,& n = 4\\ 0 \,&n > 4, \ n \ne p_i \\ \end{cases} \pmod n \]

合数 \(n = p_1^{\alpha_1}\dots p_k^{\alpha_k}\)

\(n\) 不为完全平方数时,\(p_1 \ne \dfrac{n}{p_1}\)\(p_1, \ \dfrac{n}{p_1} < n\),所以 \(n \mid (n - 1)!\)

\(n = p^2\) 时:

如果 \(2p < n\)\(2p^2 \mid (n - 1)!\)

否则 \(n = 4\)\((4 - 1)! \equiv 2 \pmod 4\)


\(w_j = (j - 1)! \bmod j\)\(f_i = \sum\limits_{j = 1}^i \lfloor\dfrac{i}{j}\rfloor w_j \bmod j\)

枚举 \(j = 4\)\(j\) 为质数:

枚举 \(k\),对于 \(i \in [k\cdot j, k\cdot j + j)\)\(j\)\(f_i\)\(k \cdot w_j\) 的贡献,差分实现。

submission

posted @ 2024-04-27 22:27  Lu_xZ  阅读(78)  评论(0编辑  收藏  举报