Problem. H

题意简述:

有一个长度为(n)的序列({a})(a_iin[1,m]capmathbb{N_+})
对于(kinmathbb{N_+})和序列({a}),定义(F_k(a)=sumlimits_{i=1}^n[exists p_1<cdots<p_k<i,s.t.forall jin[1,k],a_j<a_i])
求出(forall kin[1,n],G_k=sumlimits_aF_k(a)mod{998244353})

数据范围:

(nle10^5,mle10^9)

解法:

考虑枚举产生贡献的位置,再枚举这个位置的数,钦定前面有(k)个数小于它,其它的数没有限制。答案为:
(f_k=sumlimits_{i=1}^nm^{n-k-1}{i-1choose k}S(m,k)=m^{n-k-1}S(m,k){nchoose k+1})
其中(S(n,m)=sumlimits_{i=0}^{n-1}i^m=frac1{m+1}sumlimits_{k=0}^m{m+1choose k}B_kn^{m+1-k})
然后二项式反演,前面正好(k)个数小于自己的方案数为:
(g_k=sumlimits_{i=k}^n(-1)^{i-k}{ichoose k}f_i)
然后对(g)进行后缀和即可得到答案。
时间复杂度为(O(nlog n))

原文地址:https://www.cnblogs.com/cjoierShiina-Mashiro/p/12358195.html