「题解」ABC290F Maximum Diameter

「题解」ABC290F Maximum Diameter

没动脑子就 gf 一路写下来了......实际上就是把插板法的 gf 写了一下/zk


首先考虑一下一个 X 合法是什么情况,那就是总和是 2n2 并且保证 0<Xi<n

证明就考虑贪心构造一下,每个 1 挂在一个 2 的上面,不断挂使得最后只剩下两个 1 和一堆 2,再把它们串起来就行。

然后就能发现,这样也同时构造出了最大的直径(容易发现这是上界),那就是 度数 2 的个数 + 1.

然后枚举度数为 1 的有 k 个,此时答案为 nk+1,先仅考虑度数 2 内部的顺序,最后乘上 (nk) 以插入度数为 1 的。这样要算的方案数就是:

[z2n2k](z2+z3++zn1)nk=[z2n2k2(nk)](1+z+z2++zn3)nk=[zk2](1+z+z2++zn3)nk

由于 kn1,那么 n3k2,所以:

=[zk2](1+z+z2+z3+)nk=[zk2](11z)nk

已经化到我们熟悉的形式了,根据广义二项式定理它的系数就是 (nk+k21k2)=(n3k2),最后答案的推导也是平凡的。

k=2n1(nk)(n3k2)(nk+1)=(n1)k=2n1(nk)(n3k2)k=2n1(nk)(n3k2)(k2)=(n1)k=2n1(nnk)(n3k2)(n3)k=3n1(nnk)(n4k3)=(n1)(2n3n2)(n3)(2n4n3)

倒数第二步同时用了对称恒等式和吸收恒等式,最后一步则是范德蒙德卷积。

Code:https://atcoder.jp/contests/abc290/submissions/39046485

posted @   do_while_true  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
历史上的今天:
2022-03-27 「题解」洛谷 P3084 [USACO13OPEN]Photo G

This blog has running: 1845 days 1 hours 33 minutes 43 seconds

点击右上角即可分享
微信分享提示