#ATarc133f. [ARC133F] Random Transition

[ARC133F] Random Transition

题目描述

给定一个整数 NN

すぬけくん将进行如下操作:

  • 准备一个变量 xx,并用 00NN 之间随机选取的整数进行初始化。对于每个 0iN0 \leq i \leq Nx=ix=i 的初始化概率为 Ai/109A_i/10^9
  • 接下来重复 KK 次如下操作:
    • 以概率 x/Nx/Nxx 的值减 11,以概率 1x/N1-x/Nxx 的值加 11。(注意,操作后 xx 的值始终保证在 00NN 之间)

对于每个 i=0,1,,Ni=0,1,\cdots,N,请计算所有操作结束后 x=ix=i 的概率,并对 998244353998244353 取模。

概率 (mod998244353)\pmod{998244353} 的定义:可以证明,所求概率一定是有理数。此外,在本题的约束下,将其表示为最简分数 PQ\frac{P}{Q} 时,Q≢0(mod998244353)Q \not\equiv 0 \pmod{998244353} 也成立。因此,存在唯一的整数 RR 满足 $R \times Q \equiv P \pmod{998244353},\ 0 \leq R < 998244353$。请输出这个 RR

输入格式

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

NN KK A0A_0 A1A_1 \cdots ANA_N

输出格式

对于每个 i=0,1,,Ni=0,1,\cdots,N,输出所有操作结束后 x=ix=i 的概率,对 998244353998244353 取模。

样例 1

输入

2 1
0 1000000000 0

输出

499122177 0 499122177

样例 2

输入

4 2
200000000 200000000 200000000 200000000 200000000

输出

723727156 598946612 349385524 598946612 723727156

样例 3

输入

10 100
21265166 263511538 35931763 26849698 108140810 134702248 36774526 147099145 58335759 4118743 163270604

输出

505314898 24510700 872096939 107940764 808162829 831195162 314651262 535843032 665830283 627881537 696038713

说明/提示

限制条件

  • 1N1000001 \leq N \leq 100000
  • 0Ai0 \leq A_i
  • 0iNAi=109\sum_{0 \leq i \leq N}A_i = 10^9
  • 1K1091 \leq K \leq 10^9
  • 输入的所有值均为整数

样例解释 1

最初必定初始化为 x=1x=1。之后的操作中,以 1/21/2 的概率将 xx 的值减 11,以 1/21/2 的概率将 xx 的值加 11。最终 x=0,1,2x=0,1,2 的概率分别为 1/2,0,1/21/2,0,1/2

由 ChatGPT 4.1 翻译