Loading

模拟赛8.19 解题报告

T1. 颠倒黑白

题意:给出一个 \(n\times m\) 的矩阵,每个数 \(\in\{0,1\}\)。两人游戏,每次选一个 \(1\) 的格子,然后把该格子所有左下角的数取反(包括自己),如果不能操作就输了。两个人都绝顶聪明,求谁能赢。多测,共 \(T\) 组数据。\(1\le Tnm\le10^7\)

神奇的构造式博弈。

考虑左下角角落的格子,若为 \(1\) 则先手胜利,否则后手胜利。

证明

若左下角的格子为 \(1\),那么先手必定可以操作这个格子。之后后手必须选择一个非左下角的格子操作,一轮之后左下角又变成了 \(1\)。因此先手必定可以一直选左下角,有必胜策略。

反之,先手必须选择一个非左下角的格子,之后左下角变成了 \(1\),此时后手具有必胜策略。

这启示我们不刷构造题是非常痛苦的一件事。

T2. 糖果数

题意:求有多少个 \(n\) 位数至少存在连续的 \(3\)\(1\),允许有前导 \(0\)\(1\le n\le10^{18}\)

一眼矩阵快速幂。

先容斥,算出不出现连续的 \(3\)\(1\) 的数字个数。设 \(f[i,j]\) 表示填到了第 \(i\) 位,结尾是连续的 \(j\)\(1\) 的方案数 \((0\le j\le 2)\)。那么:

\[f[i+1,0]\leftarrow 9\times(f[i,0]+f[i,1]+f[i,2]) \]

\[f[i+1,1]\leftarrow f[i,0] \]

\[f[i+1,2]\leftarrow f[i,1] \]

然后矩阵快速幂即可。

T3. 麻将桌(P4169 天使玩偶)

题意:给出 \(n\) 个点的坐标 \((x_{1...n},y_{1...n})\)。有 \(m\) 个操作,每个操作有两种:

  • \(\text{1 x y}\):加入一个新的点,坐标为 \((x,y)\)

  • \(\text{2 x y}\):查询 \((x,y)\) 与所有点中的最小曼哈顿距离。

\(1\le n,m\le3\times10^5\)

模拟赛放做过的 \(\text{CDQ}\) 模板题是什么意思?

考虑把绝对值拆成 与左上、左下、右上、右下 的点的最小曼哈顿距离。

这里只说左上,其他方向类似。

我们列出式子,答案就是

\[\begin{aligned} \min_{x_i\le x,y_i\le y}\{x-x_i+y-y_i\} &= \min_{x_i\le x,y_i\le y}\{(x+y)-(x_i+y_i)\} \\ &= (x+y)-\max_{x_i\le x,y_i\le y}\{x_i+y_i\} \end{aligned} \]

时间一维,横坐标一维,纵坐标一维,用 \(\text{CDQ}\) 分治即可。

T4. 数学题(P2542 [AHOI2005]航线规划)

题意:一张无向图,有两种操作:

  • 删除一条已有的边,保证删除后图连通。

  • 查询两点之间的割边数量。

\(1\le n\le 3\times10^4,\space 1\le q\le4\times10^4,\space 1\le m\le10^5\)

神奇但沈奇的题。

套路,离线下来,从后往前依次加边,同时查询割边数量。

在加边之前,由于删边保证连通,可以先边双缩点。

缩完点后是一棵树,对于一条新加的边 \((u,v)\),我们会使得树上路径 \(u\rightarrow v\)\((v,u)\) 形成一个边双,使得 \(u\rightarrow v\) 上的每条边都不再成为割边。

在树上的割边打 \(1\) 标记,非割边打 \(0\) 标记,那么查询即为树上路径权值和,加边相当于把路径上每条边的权值覆盖成 \(0\)

树剖 + 线段树即可。

posted @ 2023-08-19 15:48  Lgx_Q  阅读(16)  评论(0编辑  收藏  举报