关闭

【51nod 1538】 一道难题 - n阶常系数线性递推

369人阅读 评论(2) 收藏 举报
分类:

  题意:给定a,求

(ni=1aibi)=m(ni=1bi)!ni=1(bi!)

  m1018,ai[1,23333],bi0

【奇怪的背景】
  不知道多少天前。。。
  Q神:hgr你有 nlognlogk 求 n 阶线性递推第 k 项的板子吗
  我:好像没有啊。。。
  Q神:这个辣鸡51nod出了个裸题,写不动了
  于是看了波题。。。然后一脸懵逼???这怎么就线性递推了???
  然后这题就鸽了

  最近似乎比较有空。。。冷静一下之后推了一波这个题发现。。。怎么出个裸题啊
  这个式子看起来比较吓人。。其实是在搞笑。。。
  设Fm=(ni=1aibi)=m(ni=1bi)!ni=1(bi!)
  我们稍微加上个东西然后一波xjb变换
  

Fm=(ni=1aibi)=m(ni=1bi)!ni=1(bi!)nj=1bj[bj>0]ni=1bi  =j=1n(ni=1aibi)=m[bj>0](ni=1bi1)!ni=1(bi!)bj  =j=1n(ni=1aibi)=m[bj>0](ni=1bi1)!(bj1)!ij(bi!)  =j=1n(ni=1aibi)=m[bj10](ni=1bi1)!(bj1)!ij(bi!)  =j=1n(ni=1aibi)=maj[bj0](ni=1bi)!ni=1(bi!)

  因为bi0,所以直接有
  
Fm=i=1nFmai

  于是直接套n阶常系数齐次线性递推就行了。
  具体如何实现的话。。。叉姐论文和picks老师的博客有讲。。。这东西要完整地写出来不太好写。。。式子太多了= =
  而且这玩意写起代码来也是蛋疼的一b。。。
  
  有个东西我还不太清楚。。。比如现在递推式是fm=ni=1cifmi。。。然后要先求初值f0...fn对吧。。。然而似乎除了直接用生成函数搞个F(z)=11C(z)以外我没有想到别的复杂度更好的办法。。。(虽然这里多项式求逆和分治FFT速度好像没啥区别了hhhhh)
  然而这里一点都不瓶颈的样子→_→
  
  代码太丑了不贴了其实是TLE到现在弃疗了
  UPD:终于过了。。。辣鸡数据错了卡我这么久。。。有两个点的a_1是会大于23333的,要把他忽略掉。。。GTMD。。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:77575次
    • 积分:2181
    • 等级:
    • 排名:第17413名
    • 原创:136篇
    • 转载:0篇
    • 译文:0篇
    • 评论:44条
    小伙伴
    大神犇
    最新评论