#ABC272Ex. 翻硬币 2

翻硬币 2

翻硬币 2

题目描述

编号为 0,1,,N10,1,\ldots,N-1NN 枚硬币排成一排。最初,所有硬币都是正面朝上。此外,给你一个长度为 NN、由 00N1N-1 之间的整数组成的序列 AA

Snuke 将以等概率选择一个 (1,,N)(1,\ldots,N) 的排列 p=(p1,p2,,pN)p=(p_1,p_2,\ldots,p_N),并执行 NN 次操作。在第 ii 次操作 (1iN)(1 \le i \le N) 中,

他翻转 (Api+1)(A_{p_i}+1) 枚硬币:硬币 (i1)modN(i-1) \bmod N,硬币 (i1+1)modN(i-1+1) \bmod N,\ldots,以及硬币 (i1+Api)modN(i-1+A_{p_i}) \bmod N

NN 次操作之后,Snuke 从母亲那里得到 kk 日元,其中 kk 是正面朝上的硬币数。

求 Snuke 将得到的钱的期望值对 998244353998244353 取模的值。

期望值对 998244353998244353 取模的定义

在本题中,可以证明所求的期望值总是有理数。

此外,在本问题的约束下,当所求期望值表示为最简分数 yx\frac{y}{x} 时,可以保证 xx 不被 998244353998244353 整除。

此时,满足 xzy(mod998244353)xz \equiv y \pmod{998244353} 的、在 00998244352998244352 之间的整数 zz 是唯一确定的。求出这样的 zz

输入格式

输入按以下格式从标准输入给出:

NN
A1A_1 A2A_2 \ldots ANA_N

输出格式

输出答案。

样例

2
0 1
1

pp 可以是 (1,2)(1,2)(2,1)(2,1)

如果选择 (1,2)(1,2) 作为 pp:

在第一次操作中,翻转硬币 0;在第二次操作中,翻转硬币 1 和硬币 0。结果有 1 枚硬币(硬币 0)正面朝上,所以他得到 1 日元。

如果选择 (2,1)(2,1) 作为 pp:

在第一次操作中,翻转硬币 0 和硬币 1;在第二次操作中,翻转硬币 1。结果有 1 枚硬币(硬币 1)正面朝上,所以他得到 1 日元。

因此,他得到的钱的期望值是 1 日元。

4
3 1 1 2
665496237

输出期望值对 998244353998244353 取模的值。

数据范围

  • 1N2×1051 \le N \le 2 \times 10^5
  • 0AiN10 \le A_i \le N-1
  • 输入中的所有值均为整数。
难度 NOI/NOI+/CTS
通过率
尝试 0
已通过 0
ID
2501
类型
传统题
Time Limit
2750ms
Memory Limit
1024MiB
上传者
标签