void dfs2(int now, int fa){
if(now != T)
f[now] = (A[now] * f[fa] % mod + B[now]) % mod;
for(int to : G[now]){
if(to == fa) continue;
dfs2(to, now);
}
}
f[t]期望为1 所以不需要别的点进行转移 但是如果把if(now != T)去掉 f[t]经过计算后会得到0 因为f[t]是无法向别的点进行转移的 所以即使去掉if最后只要在输出前使得f[t]=1也能ac 但是为什么f[t] 按照a[t]*f[fa]+b[t]的式子算出来会是0呢 f[fa]是0我能理解 但为什么b[t]也是0