#AT2340. Ex - Flipping Coins 2
Ex - Flipping Coins 2
当前没有测试数据。
反转硬币2
评分:600 分
问题描述
有 枚编号为 的硬币排成一排。初始时,所有的硬币都是正面朝上的。此外,给定一个长度为 的序列 ,它由 和 之间的整数组成。
Snuke 会以相等的概率选择一个起始排列 ,并进行 次操作。在第 次操作 () 中, 他将反转第 枚硬币:即将编号为 $((i-1) \bmod N), (i-1+1 \bmod N), \ldots, (i -1+ A_{p_i} \bmod N)$ 的硬币进行反转。
在进行完 次操作后,Snuke 从他的母亲那里得到了 日元(日本的货币),其中 是正面朝上的硬币的数量。
请计算 Snuke 将得到的钱的期望值,对 取模后的结果。
预期值取模 的定义
在本问题中,我们可以证明所求的期望值总是一个有理数。 而且,在本问题的约束条件下,当所求的期望值表示为一个既约分数 时,保证 不被 整除。
那么,可以唯一确定介于 和 之间的整数 ,使得 。请找出这样的 。
约束条件
- 输入中的所有值都为整数。
输入
输入以以下格式从标准输入给出:
输出
输出答案。
样例输入1
2
0 1
样例输出1
1
考虑为或的情况:
- 若以作为:
- 第一次操作中,硬币被反转;第二次操作中,硬币和硬币都被反转。其中一个硬币,硬币,会变正面朝上,所以他得到了日元。
- 若以作为:
- 第一次操作中,硬币和硬币都被反转;第二次操作中,硬币被反转。其中一个硬币,硬币,会变正面朝上,所以他得到了日元。
综上,他得到的钱的期望值为日元。
样例输入2
4
3 1 1 2
样例输出2
665496237
请输出以模 的形式计算出来的期望值。