[BJWC2018]最长上升子序列

Description
现在有一个长度为n的随机排列,求它的最长上升子序列长度的期望。
为了避免精度误差,你只需要输出答案模998244353的余数。

Input
输入只包含一个正整数n。N<=28

Output
输出只包含一个非负整数,表示答案模998244353的余数。
可以证明,答案一定为有理数,设其为a/b(a、b为互质的整数),你输出的整数为x,
则你需要保证0≤x<998244353且a与bx模998244353同余。

Sample Input
2

Sample Output
499122178


这题我先偷个懒吧。。。\((n!\times n)\)暴力处理出前8个答案(长度之和,不是期望),然后丢到OEIS去找,找出前28个,然后去算出答案。有些数特别巨大,高精度或者Windows自带的calc处理一下,就完事了。

附上打表的程序(C语言)(因为C代码B数小)

int n,v[28]={1,499122178,2,915057326,540715694,946945688,422867403,451091574,317868537,200489273,976705134,705376344,662845575,331522185,228644314,262819964,686801362,495111839,947040129,414835038,696340671,749077581,301075008,314644758,102117126,819818153,273498600,267588741};main(){scanf("%d",&n),printf("%d",v[n-1]);}
posted @ 2018-09-24 20:09  Wolfycz  阅读(521)  评论(0编辑  收藏  举报