【AGC013E】Placing Squares

Description

給你一個大小爲m的集合S,S中不包含n。
現在對於一個正整數序列
a[1]…a[k],如果序列之和爲n,且不存在s[i]屬於集合S就是合法的,s表示a的前綴和。
這樣的序列貢獻是i=1ka[i]2 ,求所有合法序列的貢獻和。
m<=10^5,n<=10^9

Analysis

首先有個naïve的dp,大概是f[i]=j=0i1f[j](ij)2xS,f[x]=0
反正我是不會優化,考慮組合意義?從(ij)2 入手,這東西相當於把2個不同的球隨便放入i-j個箱子的方案數,然後我們有總共n個箱子,可以在某些箱子之間分隔開
於是可以設dp[i][0..2] 表示i 所在的一段中已經放入了0..2個球,這樣轉移是線性的了
既然是線性的就可以寫成轉移矩陣,快速冪一下就沒了,複雜度O(mlogn)
調試了很久,最後發現是轉移矩陣手抖打錯,氣死。。。
感覺20道題做不完啊要涼涼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章