#AT2340. Ex - Flipping Coins 2

Ex - Flipping Coins 2

当前没有测试数据。

反转硬币2

评分:600 分

问题描述

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

Snuke 会以相等的概率选择一个起始排列 p=(p1,p2,,pN)p=(p_1,p_2,\ldots,p_N),并进行 NN 次操作。在第 ii 次操作 (1iN1\leq i \leq N) 中, 他将反转第 (Api+1)(A_{p_i}+1) 枚硬币:即将编号为 $((i-1) \bmod N), (i-1+1 \bmod N), \ldots, (i -1+ A_{p_i} \bmod N)$ 的硬币进行反转。

在进行完 NN 次操作后,Snuke 从他的母亲那里得到了 kk 日元(日本的货币),其中 kk 是正面朝上的硬币的数量。

请计算 Snuke 将得到的钱的期望值,对 998244353998244353 取模后的结果。

预期值取模 998244353998244353 的定义

在本问题中,我们可以证明所求的期望值总是一个有理数。 而且,在本问题的约束条件下,当所求的期望值表示为一个既约分数 yx\frac{y}{x} 时,保证 xx 不被 998244353998244353 整除。

那么,可以唯一确定介于 00998244352998244352 之间的整数 zz,使得 xzy(mod998244353)xz \equiv y \pmod{998244353}。请找出这样的 zz

约束条件

  • 1N2×1051 \leq N\leq 2\times 10^5
  • 0AiN10\leq A_i \leq N-1
  • 输入中的所有值都为整数。

输入

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

NN

A1A_1 A2A_2 \ldots ANA_N

输出

输出答案。

样例输入1

2
0 1

样例输出1

1

考虑pp(1,2)(1,2)(2,1)(2,1)的情况:

  • 若以(1,2)(1,2)作为pp
    • 第一次操作中,硬币00被反转;第二次操作中,硬币11和硬币00都被反转。其中一个硬币,硬币00,会变正面朝上,所以他得到了11日元。
  • 若以(2,1)(2,1)作为pp
    • 第一次操作中,硬币00和硬币11都被反转;第二次操作中,硬币11被反转。其中一个硬币,硬币11,会变正面朝上,所以他得到了11日元。

综上,他得到的钱的期望值为11日元。

样例输入2

4
3 1 1 2

样例输出2

665496237

请输出以模 998244353998244353 的形式计算出来的期望值。