T20201118
T1
就是因为数据随机,还有充足的限制条件。
所以爆搜 + 可行性剪枝就可以过了。
T2
首先,我们可以有约定如下:
默认 \(1\) 作为根节点。
\(f_x\) 表示从 \(x\) 走到其父亲节点的期望步数。
\(g_x\) 表示从 \(x\) 的父亲走到 \(x\) 的期望步数。
\(d_x\) 表示 \(x\) 的度数。
那么就可以很轻松的得到: \[ \begin{aligned} f_x&=\frac1d\left(1+\sum_{son_x}\left(f_{son_x}+1+f_x\right)\right)\\ &=\frac1d\left(d+(d-1)f_x+\sum_{son_x}f_{son_x}\right)\\ &=\frac1d\left(d+\sum_{son_x}f_{son_x}\right)+\frac{d-1}df_x \end{aligned} \Leftrightarrow\begin{aligned} \frac1df_x&=\frac1d\left(d+\sum_{son_x}f_{son_x}\right)\\ f_x&=d+\sum_{son_x}f_{son_x} \end{aligned} \]
那么 \(f_x\) 就可以表示为子树内的所有点的度数之和,同理可得 \(g_x\) 就该是子树外的所有点的度数之和。
所以问题似乎变成了一个有点类似树的期望直径(乱叫的)的这么一个东西。
Code
1 |
|
T3
对于一个有向图,它缩点之后一定是一个 \(\text{DAG}\)。
有如下约定:
- \(h_i\) 表示 \(i\) 个点的竞赛图的个数,\(h_i=2^{\binom i2}\)
- \(f_i\) 表示 \(i\) 个点的强连通竞赛图的个数,考虑用总方案减去不合法的方案数,枚举缩点后 \(\text{DAG}\) 尾部的强连通分量的大小,有:
- \[ f_i=h_i-\sum_{j=1}^{i-1}\binom ijf_ih_{i-j} \]
- \(g_i\) 表示有 \(i\) 个点时的答案。
那么考虑第 \(i\) 个询问,就考虑在尾部加入一个强连通分量,然后考虑 \(1\) 是否在末尾的强连通分量内: \[ g_i=\sum_{j=1}^if_j\left(\dbinom {i-1}{j-1}h_{i-j}d_j+\dbinom{i-1}{j}g_{i-j}\right) \] 那么这个就是表示的如果 \(i\) 在最后这个联通块中,那么就有 \(d_j\) 的贡献,如果不在最后一个联通块中,那么它一定在另外 \(i-j\) 个点中,然后预处理一下就是 \(O(n^2)\)。
Code
1 |
|


