题意
宫水三叶在玩一款游戏。
这是一款对城市进行建设的游戏,游戏里有 n n n 个城市。三叶在任意两个城市上都修了一条普通公路,公路为双向边。
三叶并不满足于普通公路,于是三叶又把所有的连接 ( i , i + 1 ) (i,i+1) (i,i+1) 的普通公路改造成了高速公路。
然而一次经济危机让三叶接近破产。为了减小公路的维修费,三叶决定拆除大部分公路。但是三叶还需要保证图联通,于是三叶决定保留原图的一棵生成树。
通过观察,三叶发现保留高速公路比保留普通公路更有价值,而且这些价值随着高速公路的增多会略快于指数级增加。
形象化的描述,如果三叶保留了 x x x 条高速公路,那么新图的价值为 x ⋅ 2 x x \cdot 2^x x⋅2x 。
虽然最优解很好求,但是三叶喜欢思考。她想知道对于原图的所有生成树,它们的价值的总和是多少。
本题采用捆绑测试。
对于所有数据,满足
1
≤
n
≤
5
×
1
0
5
1 \le n \le 5 \times 10^5
1≤n≤5×105 。
每个测试点具体限制见下表。
测试点编号 | n n n | 分值 |
---|---|---|
1 1 1 | ≤ 8 \le 8 ≤8 | 4 4 4 |
2 2 2 | ≤ 18 \le 18 ≤18 | 6 6 6 |
3 3 3 | ≤ 80 \le 80 ≤80 | 13 13 13 |
4 4 4 | ≤ 500 \le 500 ≤500 | 14 14 14 |
5 5 5 | ≤ 5000 \le 5000 ≤5000 | 15 15 15 |
6 6 6 | ≤ 5 × 1 0 4 \le 5 \times 10^4 ≤5×104 | 20 20 20 |
7 7 7 | ≤ 5 × 1 0 5 \le 5 \times 10^5 ≤5×105 | 28 28 28 |
题解
由于
i
i
i到
i
+
1
i+1
i+1的边是特殊的,先考虑连了一些这种边,则剩下一些联通块。于是这些联通块的生成树个数问题就是经典的prufer
计数 (并不会) :
n
m
−
2
∏
i
=
1
m
s
i
z
e
i
n^{m-2}\prod_{i=1}^m size_i
nm−2∏i=1msizei。由于不能保证剩下的关键边不被选,需要容斥一下算出恰好选
x
x
x条边的方案数,DP可以做到
O
(
n
2
)
O(n^{2})
O(n2)。
考虑生成函数:每新增一个连通块的转移关系为乘上 f ( x ) = ∑ i = 1 ∞ n i x i f(x)=\sum_{i=1}^{\infty}nix^{i} f(x)=∑i=1∞nixi,至少 ( n − i ) (n-i) (n−i)条关键边的方案即为 f i ( x ) / n 2 f^{i}(x)/n^{2} fi(x)/n2,如果要直接容斥则要求出每一个 f i ( x ) f^{i}(x) fi(x)不太现实。考虑构造一个式子使得恰好选 x x x条关键边的方案的贡献为 x ∗ 2 x x*2^{x} x∗2x,注意到恰好选 x x x条关键边在 f n − i ( x ) f^{n-i}(x) fn−i(x)中记到的次数为 C x , i C_{x,i} Cx,i,如果求出 ∑ ( n − i ) f i ( x ) \sum_{}^{}(n-i)f^{i}(x) ∑(n−i)fi(x)则恰好满足题意。对这个式子求和即可用多项式求逆算出。
再进一步考虑,把 f i ( x ) f^{i}(x) fi(x)化为特征多项式,即可 O ( n ) O(n) O(n)算出第 n n n项的和。
这里需要用到广义二项式定理,即: ( 1 − x ) − n [ x m ] = C ( ( n + m − 1 ) , m ) (1-x)^{-n}[x^{m}]=C((n+m-1),m) (1−x)−n[xm]=C((n+m−1),m),考虑 ( 1 − x ) − 1 (1-x)^{-1} (1−x)−1的多项式为{ 1 , 1 , 1 , . . . 1,1,1,... 1,1,1,...},这个多项式的 n n n次方考虑组合意义即可。