主要思路
用换根的方法求出所有点做根的树的形态的 Hash 值,然后枚举 B 中的叶子,在 map 里查一查即可。
Continue reading →在考场上只推出来 \(f(x) = \mu(x) * \sigma_0^2(x) = \prod_{i = 1}^m (2c_i + 1)\),显然用 min_25 就可以直接秒杀(但是我忘了板子呜呜呜呜呜)
Continue reading →这个题还是比较简单的。
发现在生成树上放一个 \(2\) 之后,剩下与该点距离为偶数的点都已经确定了。所以对于一个连通块而言,被染成 \(2\) 的方式只有两种。
那么我们可以对这些连通块做一个背包,然后来判断是否有 \(n_2\) 的染色方案。
剩下的点随便染色即可。
Continue reading →这个题读完之后大概能知道是要建一个反串的 SAM,然后通过倍增定位 \(A, B\) 串然后加边,找最长路即可。
但是发现直接这样做,碰到 \(|A| < |B|\) 的时候会 GG,因为可能会出现在同一个节点上。这个时候我们就通过长度进行排序,给被重复的节点多做几个影子节点即可。
Continue reading →佛了。
让 \(p\) 跟 \(10\) 取个 \(\gcd\)。如果互质的话就是数数列 \(a_i = \text{从 i 到 n 表示的数字} \bmod p\) 区间里的同色对数,用莫队搞即可;如果是 \(2\) 那就把 \(0, 2, 4, 6, 8\) 这些尾数染颜色然后数同色对数,这个可以 \(\Theta(n)\),如果是 \(5\) 那就把 \(0, 5\) 染色即可。
Continue reading →