CF434E.Furukawa Nagisa's Tree
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一天,冈崎朋也买了一棵树作为古河渚的生日礼物。这棵树非常奇怪,每个节点都有一个值。第 i 个节点的值为 vi。现在,古河渚和冈崎朋也想在这棵树上玩一个游戏。
设 (s,e) 表示从节点 s 到节点 e 的路径,我们可以记录下该路径上节点的值序列,记作 S(s,e)。我们定义该序列的值 G(S(s,e)) 如下。假设序列为 z0,z1,…,zl−1,其中 l 是序列的长度。则有 G(S(s,e))=z0×k0+z1×k1+⋯+zl−1×kl−1。如果路径 (s,e) 满足
G(S(s,e))≡x(mody)
则该路径 (s,e) 属于古河渚,否则属于冈崎朋也。
计算谁拥有更多的路径太简单了,所以他们想玩更难的。古河渚认为如果路径 (p1,p2) 和 (p2,p3) 都属于她,则路径 (p1,p3) 也属于她。同时她还认为,如果路径 (p1,p2) 和 (p2,p3) 都属于冈崎朋也,则路径 (p1,p3) 也属于冈崎朋也。不过实际上,这一结论并不总是正确的。现在古河渚想知道,对于多少个三元组 (p1,p2,p3),她的结论是正确的,这就是你的任务。
输入格式
第一行包含四个整数 n、y、k 和 x(1≤n≤105,2≤y≤109,1≤k<y,0≤x<y),其中 n 表示树上的节点个数。保证 y 是质数。
第二行包含 n 个整数,第 i 个整数为 vi(0≤vi<y)。
接下来 n−1 行,每行包含两个正整数,表示树上的一条边。节点编号为 1 到 n。
输出格式
输出一个整数,表示满足古河渚结论正确的三元组数量。
输入输出样例
输入#1
1 2 1 0 1
输出#1
1
输入#2
3 5 2 1 4 3 1 1 2 2 3
输出#2
14
输入#3
8 13 8 12 0 12 7 4 12 0 8 12 1 8 8 4 4 6 6 2 2 3 8 5 2 7
输出#3
341
说明/提示
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?