2025/10/08 模拟赛
考试(test)
有 \(n\) 名学生完成了一份包含 \(m\) 道题目的测试。对于每个学生,已知他答对了哪些题目,哪些没有答对。每道题的分数为 \(p_j\)。由于某种特殊原因,\(p\) 是一个 \(1\) 到 \(m\) 的排列。如果某名学生答对了第 \(j\) 道题,他将获得 \(p_j\) 分。对于第 \(i\) 名学生,他期望在测试中获得 \(x_i\) 分。定义测试结果的惊讶值定义为 \(\sum |x_i-r_i|\),其中 \(r_i\) 表示第 \(i\) 名学生实际获得的分数。请找到一种排列 ,使得惊讶值最大。\(1\leq n\leq 10,1\leq m\leq 10^4\)。
思路
我们把绝对值拆开,枚举第 \(i\) 名学生是 \(x_i-r_i\) 还是 \(r_i-x_i\)。这样一定不会算多。那么现在就让一堆正负 \(r_i\) 加起来尽可能大。若第 \(i\) 名学生做了第 \(j\) 道题,并且是 \(+r_i\),最后答案就会加上第 \(j\) 题的分数。若第 \(i\) 名学生做了第 \(j\) 道题,但是是 \(-r_i\),最后答案就会减去第 \(j\) 题的分数。那么我们可以算出每个题被贡献了多少次。那么根据排序不等式,贡献越多的则分配更大的分数。
则复杂度为 \(O(2^nnm)\)。
围棋(go)
给定 \(n\times n\) 的棋盘,需要求出对于每一颗棋子翻转颜色之后,白棋剩下的死棋数量。\(1\leq n\leq 3000\)。
思路
难爆了。最开始先求出所有白棋的联通块。首先考虑黑棋变白棋:
- 若变为白棋后周围没有空地:
- 若棋子四周没有活棋联通块,那么死棋数量加一。
- 若棋子四周有活棋联通块,那么意味着四周联通块全活了(包括自己),记录一下联通块大小就行。
- 若变为白棋后周围有空地,那么自己就活了,那么白棋四周的联通块就全活了。
再考虑白棋变黑棋:
- 首先如果自己本来是死棋,那么答案先减少一。然后我们需要用 tarjan。建图:先建一个超级源点对所有空地连边,所有空地和相邻白棋连边,白棋和白棋之间连边。那么若当前点不是割点,那么删除了没有影响。如果是割点,那么子树内满足 \(low_v\geq dfn_u\) 的全部变成死棋了。统计子树 sz 即可。
串串(string)
从 \(0\sim 2^n-1\) 这些数中选择一些数,使得 \(n\) 个二进制数位至少有两个 \(1\),求方案数。\(1\leq n\leq 5000\)。
思路
首先你需要知道一点反演知识:注意钦定不是至少,钦定多了一个钦定的步骤,需要乘上组合数选择方案数。

设 \(f(x)\) 表示有恰好 \(x\) 个条件不满足,\(g(x)\) 为钦定 \(x\) 个条件不满足。那么这题就是求 \(f(0)=\sum \limits _{i=0}^{n} (-1)^i g(i)\)。
现在来求 \(g(i)\)。首先钦定那 \(i\) 个不满足的是哪些,有 \(\binom{n}{i}\) 的系数。然后需要看这 \(i\) 个不满足的有多少只出现了一个 \(1\)。设为 \(j\),那么还有 \(\binom{i}{j}\) 的系数。我们需要用一些集合去精确覆盖这 \(j\) 个 \(1\),设有 \(k\) 个集合,那么方案数就是 \(\begin{Bmatrix}j\\ k\end{Bmatrix}\)。同时这些 \(k\) 个集合还可以包含 \(n-i\) 个没有限制的数,方案数为 \(2^{(n-i)k}\)。但是集合可以不包含那 \(i\) 个不满足的,我们只在其他无限制的 \(n-i\) 当中就可以凑出 \(2^{2^{n-i}}\) 种方案,所以还要乘上 \(2^{2^{n-i}}\)。
总结一下 \(g(i)=\binom{n}{i} 2^{2^{n-i}}\sum \limits_{j=0}^i \binom{i}{j} \sum \limits _{k=0}^j \begin{Bmatrix}j\\ k\end{Bmatrix} 2^{(n-i)k}\)。这样可以做到 \(O(n^3)\) 了!
我们化简一下:
\(g(i)=\binom{n}{i} 2^{2^{n-i}}\sum \limits _{k=0}^{i}2^{(n-i)k}\times \sum \limits _{j=k}^{i} \begin{Bmatrix}j\\ k\end{Bmatrix}\binom{i}{j}=\binom{n}{i} 2^{2^{n-i}}\sum \limits _{k=0}^{i}2^{(n-i)k}\times \begin{Bmatrix}i+1\\ k+1\end{Bmatrix}\)
就可以做到 \(O(n^2)\)。

浙公网安备 33010602011771号