Problem. H
题意简述:
有一个长度为\(n\)的序列\(\{a\}\),\(a_i\in[1,m]\cap\mathbb{N_+}\)。
对于\(k\in\mathbb{N_+}\)和序列\(\{a\}\),定义\(F_k(a)=\sum\limits_{i=1}^n[\exists p_1<\cdots<p_k<i,s.t.\forall j\in[1,k],a_j<a_i]\)。
求出\(\forall k\in[1,n],G_k=\sum\limits_aF_k(a)\bmod{998244353}\)
数据范围:
\(n\le10^5,m\le10^9\)
解法:
考虑枚举产生贡献的位置,再枚举这个位置的数,钦定前面有\(k\)个数小于它,其它的数没有限制。答案为:
\(f_k=\sum\limits_{i=1}^nm^{n-k-1}{i-1\choose k}S(m,k)=m^{n-k-1}S(m,k){n\choose k+1}\)
其中\(S(n,m)=\sum\limits_{i=0}^{n-1}i^m=\frac1{m+1}\sum\limits_{k=0}^m{m+1\choose k}B_kn^{m+1-k}\)。
然后二项式反演,前面正好\(k\)个数小于自己的方案数为:
\(g_k=\sum\limits_{i=k}^n(-1)^{i-k}{i\choose k}f_i\)
然后对\(g\)进行后缀和即可得到答案。
时间复杂度为\(O(n\log n)\)。