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

8 篇文章 0 订阅
6 篇文章 1 订阅

  题意:给定 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值