251018 模拟赛
T1 matrix
请你构造一个非负整数组成的 \(n\) 阶方阵,满足对任意的 \(1\le i\le n\),第 \(i\) 行和第 \(i\) 列的 \(\operatorname{mex}\) 都同时为 \(f_i\)。其中 \(f_i\) 是给定的序列,满足 \(1\le f_i\le i\)。可以证明一定有解。
\(n\le 2000\)
考虑钦定矩阵沿主对交线轴对称。由于 \(a_{1,1}=0\),那么第一行的其他数字只能取 \(0,2,3,4,\cdots\);第二列的 \(1\) 只能填在第二行了,那么 \(a_{2,2}=1,~a_{1,2}=0\),第二行的其他数字只能取 \(0,3,4,5,\cdots\);第三列的 \(1\) 只能填在第三行,\(2\) 只能填在第一行,\(3\) 只能填在第二行...找找规律,我们可以得到一个如下的构造:
这个构造有一个好处,就是主对交线下方的数无论如何也不会影响一列的 \(\operatorname{mex}\)。因此对每一列只需要根据 \(f_i\) 填主对交线上方的数字即可。
T3 journey
给你 \(n\) 个字符串 \(S_{1\sim n}\),均由小写英文字母组成。定义 \(f(i,j)\) 表示考虑前 \(i\) 个字符串,将它们划分为若干组,每组恰好包含 \(j\) 个串(一个串最多被包含在一组中,可以不被包含),各组的 \(\operatorname{LCP}\) 长度之和的最大值。
对于每个 \(i\in [1,n]\),求出 \(\bigoplus_{j=1}^{i}f(i,j)\times j\)。
\(n\le 5\times 10^5,~\sum|S_i|\le 10^6\)
考虑一个 \(f(i,j)\) 如何求出。\(\operatorname{LCP}\) 可以用 Trie 树刻画,因此先把前 \(i\) 个字符串上树,那么一组的贡献就是各字符串 \(\operatorname{LCA}\) 深度。考虑树上贪心,贪心的将子树中没匹配的字符串尽可能匹配,因为拆掉子树中已经匹配的组肯定更劣。
然而这样还是不好做。考虑将一组的 \(\operatorname{LCA}\) 的贡献拆到根链的所有点上,这样容易得到一个点的贡献是 \(\lfloor\frac{sz[u]}{j}\rfloor\)。新加一个字符串,更新路径上的 \(sz\),也只会对 \(sz[u]\) 的因数有贡献。\(d\) 的前缀和显然是 \(O(n\log n)\) 级别的,因此总复杂度就是 \(\sum|S_i|\log n\)。
代码
T4 daybreak
给定一个整数矩阵,大小 \(n\times m\)。你需要维护 \(q\) 次操作,每次操作是两种形式之一:
- 全局加 \(x\);
- 单点修改 \(a_{x,y}\gets z\);
每次修改之后,你需要回答一个问题:只保留 \(>0\) 的位置,矩阵会形成多少个四连通连通块?
另外,这里保证在任意时刻,对于矩阵中任意一个不在边界上的位置,四连通的四个数字中总有一个严格小于自己的值。
\(n,m\le 1000,~q\le 10^5\)
add
操作显然就是记一个 \(offset\),等价于询问 \(\ge offset\) 的点的答案。直接做显然没啥前途。考虑拆连通块的贡献,考虑欧拉定理:
平面图欧拉定理
对于一个平面图,记点的数量为 \(V\),边的数量为 \(E\),面的数量为 \(F\)(不算最外面的一个面),连通块的数量为 \(G\),那么
证明考虑加一个点或者一条边,然后进行归纳。
其中 \(\ge offset\) 的点数、边数显然容易维护。对于面数,考虑还没用到的性质:这个性质告诉我们,矩阵内部不存在极小值。因此,每一个连通块中间不会存在气泡。因此一个面只可能是一个 \(1\times 1\) 的小矩形。离散化之后用 BIT 简单维护即可。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
|