1. 程式人生 > >洛谷團隊月賽題:題解

洛谷團隊月賽題:題解

10 p t s 10pts

暴力算不解釋,時間複雜度 O ( k

n + k 2 ) O(kn+k^2)

30 p

t s 30pts

我們觀察到 n n 很大,楊輝三角會T,直接算會上溢,所以需要預處理出 1

1 ~ k k 逆元再算,時間複雜度 O ( k n + n l o g k + n 2 ) O(kn+nlogk+n^2) O ( k n + n + k + n 2 ) O(kn+n+k+n^2)

60 p t s 60pts

代入幾個 k k ,發現數列通項是一個多項式,故 S n S_n 也有一個通項;觀察次數,可知 a n a_n 等於一個 k k 次多項式,那麼 S n S_n 等於一個 k + 1 k+1 次方多項式,拉格朗日插值+高斯消元解出 S n S_n 表示式即可,當然也要預處理逆元,時間複雜度為 O ( k 3 ) O(k^3)

80 p t s 80pts

不要被 n n 嚇到,還是先算表示式,代入時高精度取模即可,時間複雜度為 O ( k 3 + k l g n ) O(k^3+klgn) ,其中lg為以10為底的對數。

100 p t s 100pts

手推!發現 S n = C n + k k + 1 S_n=C_{n+k}^{k+1} ,那麼就可以 O ( k l g n ) O(klgn) 出答案了。