题意是求出树上有多少条路径满足路径上权值连起来组成的数字是 M M M 的倍数。
看到树上路径计数就应该知道是点分治。。。
设 a u a_u au 为从 u u u 到根的数字表示, b u b_u bu 是从根到 u u u 的数字表示, d u d_u du 为 u u u 的深度。定义根的深度为 0 0 0 。
对于一个始于 u u u ,终于 v v v 的路径,可以得到如下公式: a u × 1 0 d v + b v ≡ 0 ( m o d M ) a_u \times 10^{d_v}+b_v \equiv 0\pmod{M} au×10dv+b
Codeforces-716E-Digit Tree(点分治)
最新推荐文章于 2021-04-23 20:10:33 发布
博客介绍了如何利用点分治方法解决Codeforces 716E问题,该问题涉及计算树上路径权值组成数字能被M整除的路径数量。通过设立从节点到根节点和从根节点到节点的数字表示,建立路径条件并进行点分治计算,复杂度为O(nlog2n)。
摘要由CSDN通过智能技术生成