Description
給你一個大小爲m的集合S,S中不包含n。
現在對於一個正整數序列
a[1]…a[k],如果序列之和爲n,且不存在s[i]屬於集合S就是合法的,s表示a的前綴和。
這樣的序列貢獻是 ,求所有合法序列的貢獻和。
m<=10^5,n<=10^9
Analysis
首先有個naïve的dp,大概是 ,
反正我是不會優化,考慮組合意義?從 入手,這東西相當於把2個不同的球隨便放入i-j個箱子的方案數,然後我們有總共n個箱子,可以在某些箱子之間分隔開
於是可以設 表示 所在的一段中已經放入了0..2個球,這樣轉移是線性的了
既然是線性的就可以寫成轉移矩陣,快速冪一下就沒了,複雜度O(mlogn)
調試了很久,最後發現是轉移矩陣手抖打錯,氣死。。。
感覺20道題做不完啊要涼涼