题目传送门
(这次英语题应该比较好懂吧……)
大意是
给定一棵有
n 个点的树,每个点有权值vi ,求是否存在一条路径使得路径上所有点的权值的乘积mod106+3 为k ,输出路径首尾编号,若有多解输出字典序最小的解。
貌似很像不虚就是要AK?
现在求路径上点权的乘积,继续点分治,怎么合并答案?
我们已经统计出一棵子树到重心的权值积了,因为这些乘积
如何确定树上合法的两点?在统计乘积时需要记录一下位置,在加入子树时就可以合并了,利用这个更新答案,然后将这些点插入哈希表中,待下次加入子树时备用。
时间复杂度为
Code