DTOJ 4848. 交通网络

题意

宫水三叶在玩一款游戏。

这是一款对城市进行建设的游戏,游戏里有 n n n 个城市。三叶在任意两个城市上都修了一条普通公路,公路为双向边。

三叶并不满足于普通公路,于是三叶又把所有的连接 ( i , i + 1 ) (i,i+1) (i,i+1) 的普通公路改造成了高速公路。

然而一次经济危机让三叶接近破产。为了减小公路的维修费,三叶决定拆除大部分公路。但是三叶还需要保证图联通,于是三叶决定保留原图的一棵生成树。

通过观察,三叶发现保留高速公路比保留普通公路更有价值,而且这些价值随着高速公路的增多会略快于指数级增加。

形象化的描述,如果三叶保留了 x x x 条高速公路,那么新图的价值为 x ⋅ 2 x x \cdot 2^x x2x

虽然最优解很好求,但是三叶喜欢思考。她想知道对于原图的所有生成树,它们的价值的总和是多少。

本题采用捆绑测试。
对于所有数据,满足 1 ≤ n ≤ 5 × 1 0 5 1 \le n \le 5 \times 10^5 1n5×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 nm2i=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=1nixi,至少 ( n − i ) (n-i) (ni)条关键边的方案即为 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} x2x,注意到恰好选 x x x条关键边在 f n − i ( x ) f^{n-i}(x) fni(x)中记到的次数为 C x , i C_{x,i} Cx,i,如果求出 ∑ ( n − i ) f i ( x ) \sum_{}^{}(n-i)f^{i}(x) (ni)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) (1x)n[xm]=C((n+m1),m),考虑 ( 1 − x ) − 1 (1-x)^{-1} (1x)1的多项式为{ 1 , 1 , 1 , . . . 1,1,1,... 1,1,1,...},这个多项式的 n n n次方考虑组合意义即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值