唐山一中暑假集训 IV
Day 18
-
P2322 [HNOI2006] 最短母串问题。
我们考虑建立 trie 图(其实也是 AC 自动机),然后我们从第一位开始进行 BFS,每次遍历到一个点 \((u, state)\),\(u\) 表示节点,而 \(state\) 表示状态。对于这 \(n\) 个字符串进行状态压缩,从右向左数第 \(i\) 个表示 \(2^{i - 1}\)。根据 AC 自动机的 fail 数组性质,我们很容易发现这是和题目要求很相近的。所以我们这么进行 BFS 即可。 -
P4248 [AHOI2013] 差异。
我们首先来转化一下式子。
\(原式 = \sum_{1 \le i \le n - 1} \sum_{i + 1 \le j \le n} i + j - 2 \times \sum_{1 \le i < j \le n} \textup{lcp} (s_i, s_j) = \frac{n \times (n - 1) \times (n + 1)}{2} - 2 \times \sum_{1 \le i < j \le n} \textup{lcp} (s_i, s_j)\)
注意到后面的这个东西其实是可以使用 SA 后缀数组和 height 数组求解。
然后再套一个单调栈即可。
Day 20
-
P2520 [HAOI2011] 向量。
我们注意到原式等价于 \(n1 \times a + m1 \times b = x\) 和 \(n2 \times a + m2 \times b = y\)。
但是这两个式子有解很好判断,但是能不能同时有解呢?
我们考虑把两个式子加在一起,考虑改写成一种等价格式:\(n3 \times (a + b) + m3 \times (a - b) = x + y\)
再使用裴蜀定理判定即可。 -
P1516 青蛙的约会。
我们令 \(a = n - m\),\(b = L\),\(c = x - y\),原式就是求出 \(ax' + by' = c\) 的整数解。
然后我们使用 exgcd 求解即可。 -
P3934 [Ynoi Easy Round 2016] 炸脖龙 I。
一看就是 Ynoi 好题。
首先,我们根据扩展欧拉定理可以知道,注意到 \(\phi(\phi(n...))\) 其实有很多层的,复杂度是 \(\log\) 级别的。
所以这就是一个树状数组好题了,对于操作一直接使用树状数组维护,第二个暴力做即可。复杂度 \(O(n \log n)\)。
Day 21
莫比乌斯反演
首先定义什么事 \(\mu(n)\)。
如果 \(n = 1\),那么 \(\mu(n) = 1\);如果 \(n\) 含有平方因子,那么 \(\mu(n) = 0\);否则设 \(n = p_1 \times p_2 \times ... \times p_k\),则 \(\mu(n) = (-1)^k\)。
接下来我们定义单位函数 \(\varepsilon(n) = [n = 1]\),\(\textup{id(n)} = n\),\(1(n) = 1\)。
接下来介绍一下狄利克雷卷积。
我们定义 \((f * g)(n) = \sum_{d | n} f(d) \times g(\frac{n}{d})\)。
- P3455 [POI 2007] ZAP-Queries。
令 \(n = \frac{a}{k}\),\(m = \frac{b}{k}\)
然后可以进行数论分块和前缀和预处理即可。
浙公网安备 33010602011771号