菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
277
0

loj3291

原创
05/13 14:22
阅读数 69918

题意

loj

做法

\(F_{n+m}=F_{n}*F_{m}+F_{n-1}*F_{m-1}\)
\(F_{n}*F_{m}=F_{n+m}-(F_{n-1}*F_{m-1})\)
\(F_n*_m=F_{n+m}-F_{n+m-2}+F_{n+m-4}…+(-1)^{min(n,m)}*F_{|n-m|}\)

分别算出\(F_{n+m}\)\((-1)^{min(n,m)-2}*F_{|n-m|-2}\),可以差分算出中间的
\(A,B\)分别用多项式\(A(x),B(x)\)表示,通过多项式加速整体求和的过程

最后得到的多项式有正有负,负数取绝对值,分别做表示成最简表示,然后做减法

现在问题转化成,若得到\(\sum a_i*F_{i}\),如何转化到最简的表示
分治一下:\(\sum a_i*F_{i}=\sum (a_i\%2)F_i+2(\sum (\left\lfloor\frac{a_i}{2}\right\rfloor) F_i)\)
相加就暴力做好了

发表评论

0/200
277 点赞
0 评论
收藏
为你推荐 换一批