少项式 sqrt(
对于一条信息 (si,vi) 令 wsi=vi−A,其余 wi=0。则定义 pi=wifi。
令 F(x) 为答案的 OGF,P(x) 为 {pi} 的 OGF。
有
F(x)=AF2(x)+P(x)F(x)+xAF2(x)+(P(x)−1)F(x)+x=0F(x)=1−P(x)−√(1−P(x))2−4Ax2A
令 Q(x)=(1−P(x))2−4Ax,G(x)=√Q(x),则显然 G′(x)=12Q′(x)Q−1/2(x)
两边乘 Q(x) 分母有理化得 G′(x)Q(x)=12Q′(x)Q1/2(x)=12Q′(x)G(x)
提取系数得 n∑i=0(i+1)gi+1qn−i=12n∑i=0(i+1)qi+1gn−ign+1=1n+1n+1∑i=1(32i−n−1)qign−i+1
以 f0=0 为基础,得到 pn 再得到 qn,Q(x) 只有 O(k2) 项,暴力 O(nk2) 计算出 gn+1,然后有 fi=−pi+gi2A
不过注意到上面的递推式两边都和 fn+1 相关。此时一个不大高明的做法是把它当做关于 gn+1 的方程解出来。
这样会导致出现额外的分母 2A+wi。
正确的方法是关于 fn+1 去解这个方程,然后再求出 pn+1,gn+1。
不过最终还是会剩下 2A 作为分母。然而 A=0 的情况实际上可以通过平凡地 O(nk) 递推得到结果。
但是 cty 说他没造所以我也没造。
时间复杂度 O(nk2),求逆所可能产生的 log 是容易避免的。
代码:
1 |
|