#P51832. 「LOJ」 yww 与校门外的树

「LOJ」 yww 与校门外的树

题目描述

二中的校门外有一排树,一共 nn 棵。每棵树的高度为 [0,1][0,1] 之间的随机小数。每棵树上都有一个苹果。

zjt 把这 nn 棵树从左到右编号为 1n1\sim n。zjt 还会在某些树之间挂上绳索。设第 ii 棵树的高度为 aia_i 。如果对于两棵树 i,ji,j 满足 i<ji<jai<aja_i<a_j ,那么 zjt 就会在第 ii 棵树与第 jj 棵树之间挂上一条绳索。这些绳索是双向的。

这时,有很多猴子路过了这里,你可以认为是 nn 只,或是 2n2n 只,或是 \infty 只。这些猴子会依次选择一棵有苹果的树(如果所有树上都没有苹果就不选),然后把这棵树以及可以通过绳索去到的其他树上的苹果全部摘下来。如果一只猴子摘下来了 xx 个苹果,那么猴群的团结度就会乘以 xx 。猴群的初始团结度为 11 。如果一只猴子没有摘到苹果,那么他就会离开猴群,所以不会影响团结度。

猴王想知道猴群的期望团结度是多少。请你帮帮他。

设答案为 ss ,显然 s×n!s\times n! 是一个整数。所以你只需要告诉他 ans=(s×n!)mod998244353\mathit{ans}=(s\times n!)\bmod 998244353 的值 。

输入格式

一个整数 nn

输出格式

一个整数 ans\mathit{ans}

样例 1

2
3

若第一棵树比第二棵树矮,则团结度为 22 。 若第一棵树比第二棵树高,则团结度为 11 。 答案为 2+12×2=3\frac{2+1}{2}\times 2=3

5
543
100
795600847
50000
480358544

数据范围与提示

子任务 111010 分):n10n\leq 10
子任务 221010 分):n100n\leq 100
子任务 332020 分):n5000n\leq 5000
子任务 444040 分):n105n\leq 10^5
子任务 551010 分):n2×105n\leq 2\times 10^5
子任务 661010 分):n5×105n\leq 5\times 10^5
对于 100%100\% 的数据:1n5×1051\leq n\leq 5\times 10^5

题目来源:全是水题的 GDOI 模拟赛 by yww