闲话8.7

发布时间 2023-08-08 10:21:16作者: crimson000

昨晚管神讲太晚了所以咕到8.8来写了

上午博弈论和杂题,依旧听不懂?,离线了一个上午,下午又赫了一个下午,收获满满捏?

同时破 1000AC 了,为此 whr 特地发私信庆祝:

晚上管神讲组合数学、GF 和群论,真抽象捏,再次离线喽?。反正明天都放假了,直接开摆!


推歌部分:

Lost Emotion feat. nomico - Masayoshi Minoshima/のみこ

秦心的歌也好好听??而且被sb616收录了??


P3687

我们考虑如果原图本身就不是一颗仙人掌,那无论如何都不可能是仙人掌。而如果原图中有环,那么这个环也不能被加入的边覆盖到,因为这样就不满足每个边只在一个简单环中的要求了。

因此整张图就被这些环分成了一堆部分,每个部分都是一颗树,并且每部分分开计算,因此我们就可以只考虑树的情况。

由于仙人掌中的割边不利于我们dp,我们强制让割边都连一条重边,这样就好dp了。我们设 \(f_i\) 为子树内加边的方案,\(g_i\) 为往上扩展一条边的方案。为了方便转移,再设 \(h_i\) 为有 \(i\) 个儿子时子树内连边的方案数。

首先 \(h_i\) 的递推式很容易计算,我们只需考虑最后一条边是和父亲连还是子树内再找一个来配对,因此

\[h_i=h_{i-1}+(i-1)h_{i-2} \]

我们再考虑 \(f\)\(g\) 的转移方程。

我们记 \(ch\) 为儿子的个数,每个子节点向上连边是独立的,而这些子节点又是可以互相连边的,因此 \(f\) 的方程为:

\[f_{u}=h_{ch}\times \prod \limits _{v\in son_u} g_v \]

再考虑 \(g\) 的方程,首先 \(u\) 本身可以直接向上扩展,或者是从子节点中选出一个点向上扩展,这时剩下的点其实也不影响,也可以向上扩展到 \(u\),或者内部自己连边,因此转移方程为:

\[g_u=f_u+h_{ch-1}\times ch\times \prod \limits _{v\in son_u} g_v \]

时间复杂度 \(O(n)\)


偷看姐姐图片的恋恋