Luogu6112
前言
大毒瘤题!
拿了最劣解 QAQ。
不过这么做确实简单得多。
思路
生成函数可以大力解方程得。
让我们快进到生成函数:
\[1-z-2z^2+2z^3+z^4-z^5-(1-z^2)\sqrt{1-2z-5z^2+4z^3+7z^4-6z^5-3z^6-4z^7}\over2z^2(1-2z^2+z^3+z^4+z^5)
\]
注意到我们只用求单项;换言之,我们只用把分子前 \(n+2\) 项线性求出,以及 \(1\over1-2z^2+z^3+z^4+z^5\) 的前 \(n\) 项线性求出,答案就可以线性求出。
咋做 \(1\over1-2z^2+z^3+z^4+z^5\)
先捏软柿子。
即求 \(1-2z^2+z^3+z^4+z^5\) 的乘法逆。
考虑设为 \(f\)。
\[(1-2z^2+z^3+z^4+z^5)f=1
\]
\[f_0=1
\]
\[f_n=2f_{n-2}-f_{n-3}-f_{n-4}-f_{n-5} (n>0)
\]
然后就做好了。
咋做分子
其余部分比较平凡,我们考虑咋求 \(\sqrt{1-2z-5z^2+4z^3+7z^4-6z^5-3z^6-4z^7}\)。
记 \(f=1-2z-5z^2+4z^3+7z^4-6z^5-3z^6-4z^7,g=f^\frac12\)。
考虑对着 \(g\) 列出 ODE。
由于
\[g'=\frac12f'g^{-1}
\]
\[g''=\frac12f''g^{-1}-\frac14(f')^2f^{-1}g^{-1}
\]
于是
\[{g''\over g'}=f''(f')^{-1}-\frac12f'f^{-1}
\]
即
\[(f'f)g''=(f''f-\frac12(f')^2)g'
\]
然后你现在要干的事:
- 求 \(f',f''\)。
- 求 \(ff'\)。
- 求 \(f''f-\frac12(f')^2\)。
显然手算这些非常反人类,于是你飞速的打开了一个数字帝国。
先是导函数计算器,你飞快地敲入:
1-2*z-5*z^2+4*z^3+7*z^4-6*z^5-3*z^6-4*z^7
然后让它分别做 \(f',f''\),它马上返回:
-28*z^6-18*z^5-30*z^4+28*z^3+12*z^2-10*z-2
-168*z^5-90*z^4-120*z^3+84*z^2+24*z-10
接下来是表达式计算器。
不一会,又返回:
112*z^13+156*z^12+342*z^11-110*z^10-190*z^9-306*z^8+188*z^7+420*z^6-108*z^5-200*z^4+46*z^3+42*z^2-6*z-2
280*z^12+360*z^11+756*z^10-368*z^9-540*z^8-120*z^7+512*z^6+504*z^5-96*z^4-272*z^3+60*z^2+24*z-12
于是就好了。
记 \(A=ff',B=f''f-\frac12(f')^2\)。
\[g''A=g'B
\]
考虑对应系数相等,有
\[\sum_k(n-k+2)(n-k+1)g_{n-k+2}A_k=\sum_k(n-k+1)g_{n-k+1}B_k
\]
于是:
\[g_n={(\sum_k(n-k-1)g_{n-k-1}B_k)-(\sum_{k>0}(n-k)(n-k-1)g_{n-k}A_k)\over A_0n(n-1)}
\]
算上边界 \(g_0=1,g_1=-1\),然后就做完了。
本文来自博客园,作者:myee,转载请注明原文链接:https://www.cnblogs.com/myee/p/Luogu-solution-p6112.html