【51nod 1538】 一道難題 - n階常係數線性遞推

  題意:給定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。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章