20250810 做题记录
专题,下面是部分题解:
F
考虑 \(F(n)\) 表示 \(n\) 个点本质不同二叉树数量,\(G(n)\) 表示 \(n\) 个点本质不同二叉树的叶子结点数的和。
打表可以发现 \(G(n)=nF(n-1)\),也可以考虑证明:
对于一个 \(n\) 个节点的树,删去一个叶子结点得到 \(n-1\) 个节点的树,而对于一个有 \(n-1\) 个节点的树,有 \(n\) 种方法增加一个点。从一个 \(n-1\) 个点的树,加了一个点,可以视为在 \(n\) 个点的树上,计数了这个点。因此方案数就是计数:\(G(n)=nF(n-1)\)。
因此我们要求的是:
有 \(F\) 转移:
发现是卡特兰数的形式,我们得到 \(F(n)=\frac{\binom{2n}{n}}{n+1}\),带入原式:
H
首先考虑最优操作:贪心,从大到小扫,如果当前为 1 就翻一下。
记 \(F(i)\) 表示在贪心策略下,需要 \(i\) 步的局面,到需要 \(i-1\) 步的局面,需要的期望步数。
那么你有 \(i\) 种正确的选择和 \(n-i\) 种错误的选择,有递推式:
Done.
B
容易发现 \(P(a>b)=P(a<b)\),只需计算 \(P(a=b)\) 即可。
C
要求经过每条边的期望次数,排序即可。
边的数量比较多,不好处理,考虑从点出发。
记 \(f(i)\) 表示从 \(i\) 到 \(n\) 期望访问 \(i\) 的次数。有递推:
高斯消元即可。
I
考虑如果我们知道 \(e\) 的值,我们直接跑 Kruskal 即可。
这启发我们枚举用了 \(i\) 条边(在连接第 \(i\) 条边时刚好使图联通),知道这个的方案数,然后 \(\max e=\frac{i}{m+1}\)。
发现直接从边出发不太好搞,考虑加入点辅助。
记 \(f(S,i),g(S,i)\) 表示用了 \(S\) 点集里的点,用了 \(i\) 条边,不联通 or 联通的方案数。显然有:
然后转移的时候,枚举 \(S\) 里的一个点,枚举他所在的连通块,枚举用的边数,计算。
然后,返回原题,“恰好 \(i\) 条边后联通”的概率是:
答案即为:
G
发现异或运算不具有线性性,但是异或的好处在于每一个二进制位可以单独考虑。
因此每条边变为 \(0\) 或 \(1\)。记 \(f(i)\) 表示从 \(i\) 出发到 \(n\) 这一位的期望。有递推式:
一定要注意自环的时候对点的度数的计数!

浙公网安备 33010602011771号