题解
我们从叶子节点逐层递归到根节点。
我们可以建动态开点权值线段树,每个结点上建一颗,递归时考虑合并左右子树的信息。
可以得到,当合并左右儿子到某父结点上时,可以这样转移:
设f[i][j]是在i结点上,权值为j(令权值为j只能从左儿子中转移上来)的概率,则 f[i][j]=f[lc[i]][j]∗((1−p)∗sum1[rc[i]](所有值
我们从叶子节点逐层递归到根节点。
我们可以建动态开点权值线段树,每个结点上建一颗,递归时考虑合并左右子树的信息。
可以得到,当合并左右儿子到某父结点上时,可以这样转移:
设f[i][j]是在i结点上,权值为j(令权值为j只能从左儿子中转移上来)的概率,则 f[i][j]=f[lc[i]][j]∗((1−p)∗sum1[rc[i]](所有值