Description
给你一个长为\(n\)的序列\(A\),将它做\(k\)次前缀和,输出结果序列,每一项对\(998244353\)取模。
\(1\leq n\leq 10^5,1\leq k\leq 2^{60}\)。
Solution
终于有我会做的题力,,,
考虑构造\(A\)的生成函数\(A(x)\),然后我们想一下怎么对生成函数做前缀和。
昨晚前缀和之后,每一项都会往后面所有项(包括这一项)加一下,换言之乘上的东西的生成函数就是\(1 + x^2 + x^3 +\ldots = \frac{1}{1 - x}\),做\(k\)次前缀和就乘了\(k\)次,所以总的来说乘了一个\((1 - x)^{-k}\)。
然后负指数是不是很毒啊……其实也不是,注意到底数是一个二项式,所以直接用广义二项式定理展开即可。更好的事情是广义组合数是可以和普通组合数一样从左到右推一整行的,这样就舒服多了。
Code
1 |
|