标签:误差 c语言 esc 排列 tput put time 序列 scanf
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]);}
标签:误差 c语言 esc 排列 tput put time 序列 scanf
原文地址:https://www.cnblogs.com/Wolfycz/p/9696482.html