DTOJ 4872. 真的

題意

你正在一個數軸上隨機遊走。一開始,你在位置 00。每一時刻,你有 $ \frac{1}{2}$ 的概率往左走,還有 12\frac{1}{2}的概率往右走。定義一個方向係數tt,當你往左走時 tt1-1,反之往右走 tt+1+1。同時,我們給定了一個長度爲 NN 的序列 A1,A2,,ANA_1,A_2,…,A_N 。假如當前在位置 xx ,那麼在選定方向之後,下一步有 Aki=1NAi\frac{A_k}{\sum_{i=1}^{N}{A_i}} 的概率在 x+t×kx+t \times k

假如走完之後,你落在了某一個位置 y<0y<0,那麼你會直接到達 y-y 的位置;假如你落在了某一個位置 y>Ny>N,那麼你會直接到達 2×Ny2 \times N-y 的位置。

現在你按照上述規則,隨機遊走了KK步。請你求出,你最終到達每個點的概率在模 998244353998244353 意義下的結果。顯然,最終到達的一定是 00NN 之間的某一個整點。

Subtask 1 (3pts):K=0K=0

Subtask 2 (12pts):N100,K5000N \le 100,K \le 5000

Subtask 3 (23pts):N×K5×105N \times K \le 5 \times 10^{5}

Subtask 4 (11pts): $ \forall 2 \le i \le N,A_i=0$

Subtask 5 (27pts): N103N \le 10^3

Subtask 6 (24pts):無特殊限制。

對於全部數據: 1N105,0K1018,1i=1NAi1081 \le N \le 10^5, 0 \le K \le 10^{18},1 \le \sum_{i=1}^{N}{A_i} \le 10^8

題解

考慮遊走的過程,發現是一個碰壁就回退的循環,考慮構造循環卷積。如果循環節是n顯然不太行,發現從00nn再回到00可看作一個循環節,於是構造一個長度爲2n2n的多項式,00nn項依次是0,...,n0,...,n代表從00走到nn,後n1n-1項依次是n1,...,1n-1,...,1代表從nn走到00。由於兩個方向的概率都是1/21/2,這樣向原來方向走相當於右移,向相反方向走相當於左移,如果越界的話則在%2n\%2n的意義下是等價的,故直接循環卷積快速冪即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章