A41139.最小表示

提高+/省选-

官方

通过率:35.48%

时间限制:1.00s

内存限制:256MB

题目描述

小栋是个字符串爱好者。

对于一个长度为 nn 的字符串 S=S1S2...SnS=S_1S_2...S_n ,我们定义 R(S,i)R(S,i)SSii 次循环移位,即

R(S,i)=SiSi+1...SnS1...Si1R(S,i)=S_iS_{i+1}...S_nS_1...S_{i-1}

例如 R(abc,1)=abc,R(abc,2)=bcaR(abc,1)=abc,R(abc,2)=bca ,在 R(S,1)...R(S,n)R(S,1)...R(S,n) 中,小栋希望你能求出字典序最小的一个,这样的 ii 可能有很多个,记 F(S)F(S) 为他们中最小的一个,如 F(qweqweqwe)=3F(qweqweqwe)=3

当然,只要求 F(S)F(S) 可能太简单,所以小栋给了你 mm 个字符串 S1,S2,...,SmS_1,S_2,...,S_m

当然,只要求这些的 F(Si)F(S_i) 依旧过于简单,于是你草草完成了任务,提交时一不小心把他们的顺序打乱成了 F(Sm),F(S1),F(S2),...,F(Sm1)F(S_m),F(S_1),F(S_2),...,F(S_{m-1})

当然,只要求有多少个答案正确未免太简单,由于年代久远,你只记得这些字符串的长度了。

不妨假设每个字符串都仅包含小写英文字母且均匀随机生成,小栋希望你能求出提交的答案中期望有多少个正确答案。

输入格式

第一行一个整数 mm ,表示字符串的数量。

第二行 mm 个空格隔开的整数 n1,...,nmn_1,...,n_m ,依次表示 mm 个字符串的长度。

输出格式

一行一个整数 xx ,表示期望正确答案数对 998244353998244353 取模的结果。

即假设期望为 pq\frac{p}{q} ,则 xx 为满足 xqp(mod 998244353)xq\equiv p(mod\ 998244353) 的最小非负整数。

由基本的数论知识我们可以知道,xx 应该取 pq9982443531pq^{998244353-1}

在编程中,你应该使用快速幂来加速计算,即将求 xyx^y 的问题转变为 xy/2x^{y/2} ,递归处理。

输入输出样例

  • 输入#1

    5
    3 1 5 2 4

    输出#1

    727907401

说明/提示

数据规模与约定

对于 20%20\% 的数据,m=2,ni3m=2,n_i\leq 3

对于 40%40\% 的数据,m300,ni300m\leq 300,n_i\leq 300

对于另外 20%20\% 的数据,m5000m\leq 5000nin_i 均为质数。

对于前 80%80\% 的数据,m5000,ni5000m\leq 5000,n_i\leq 5000

对于 100$100\$ 的数据,m,ni105m,n_i\leq 10^5

首页