Codeforces-716E-Digit Tree(点分治)

博客介绍了如何利用点分治方法解决Codeforces 716E问题,该问题涉及计算树上路径权值组成数字能被M整除的路径数量。通过设立从节点到根节点和从根节点到节点的数字表示,建立路径条件并进行点分治计算,复杂度为O(nlog2n)。
摘要由CSDN通过智能技术生成

Codeforces-716E-Digit Tree

题意是求出树上有多少条路径满足路径上权值连起来组成的数字是 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值