20250812 做题记录

打模拟赛,上午做了两题,旅行家铝装,都好水。

下午看了一会 T3 不懂就摆了,不能这样啊啊啊啊啊

晚上继续思考 T3,发现洛谷的一个比较好的题解。

发现你最后要求根节点不能变。

然后你考虑删边的过程:对于节点 \(u\),和儿子 \(v\),在 \((u,v)\) 被删掉以前,\(v\) 子树内咋搞都行;\((u,v)\) 删掉之后,\(v\) 子树内所有本来连到 \(v\) 的点,都必须保留上面的 \(u\)

因此可以设计状态:\(dp(u,i)\) 表示 \(u\) 子树内,删去最后的 \(i\) 条边前后,根节点不变,的概率。

然后考虑 \(dp(v)\to dp(u)\)

  • 我们先只考虑 \(G=\{u\}\cup subtree(v)\),记该树删去最后 \(i\) 条边前后,不改变根节点的概率为 \(g(i)\),枚举 \((u,v)\) 是倒数第 \(j\) 步被删掉的边:

    • 如果 \(j\le i\),即删这条边的时候根节点总是被保留。这是一个 \(0.5\) 的概率。然后,对于所有的合并,要求根节点被保留(但是根节点与 \(v\) 合并了,因此等价于 \(v\) 被保留)那么概率是 \(f(v,j-1)\)。总体就是 \(0.5f(v,j-1)\)
    • 如果 \(j>i\),即删这条边的时候根节点没有限制,是谁都行,但是需要最后的 \(i\) 轮删边都合法,因此概率就是 \(f(v,i)\)
    • 不过别忘了,这里枚举了这个边是第几个加进来的,因此概率都要除以 \(sz_v\)
  • 然后把 \(G\)\(subtree(u)\) 合并起来,更新 \(f(u)\)

    • 如果要合并 \(f(u,i)\)\(g(j)\),可以发现,前面原本子树删边的相对关系不能改变,\(G\) 中删边顺序也不能改变。(因为这个状态是与顺序相关的)。因此可以在一共要删的若干条边中选出一些作为 \(subtree(u)\) 中的,一些作为 \(G\) 中的。然后呢,对于每一类,前若干个是没有要求的删边,后若干个是要求保持根节点不变的删边。排列组合一下即可。

    • 具体而言,两个图中的边,原来后 \(i,j\) 个删掉,现在他们拼起来得是后 \(i+j\) 个删掉,因此概率为:

      \[\frac{\binom{a+c}{a}\binom{b+d}{b}}{\binom{a+b+c+d}{a+b}} \]

就做完了。

posted @ 2025-08-12 20:54  Air_CoIor5  阅读(5)  评论(0)    收藏  举报