QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100

#349. 彩繪

Statistics

有 $n$ 桶顏料擺成一排,每桶顏料都有 $1$ 單位體積,顏色用 $(r_i, g_i, b_i)$ 表示。接下來進行 $n - 1$ 次調色:每次等機率選擇當前一排中兩個相鄰的顏色桶,將這兩桶顏料混合在一起,然後倒掉 $1$ 單位體積,於是兩罐顏色分別為 $(r, g, b)$ 和 $(r', g', b')$ 的顏料混合後的顏色會變為 $(\frac{r + r'}2, \frac{g + g'}2, \frac{b + b'}2)$。

如果這樣隨機地將顏料桶不斷合併,最終得到的顏料的 $r, g, b$ 顏色值之期望是多少?

輸入格式

第一行輸入一個正整數 $n$,表示顏料的數量。

接下來 $n$ 行,其中第 $i$ 行三個整數 $r_i, g_i, b_i$ 表示第 $i$ 罐顏料的顏色。

輸出格式

一行輸出三個整數,分別為期望的 $r, g, b$ 在模 $998244353$ 意義下的取值。

即設答案中任何一個數化為最簡分式後的形式為 $\frac ab$ ,其中 $a$ 和 $b$ 互質。輸出整數 $x$ 使得 $bx \equiv a \pmod {998244353}$ 且 $0\le x < 998244353$。可以證明這樣的整數 $x$ 是唯一的。

範例

範例 1 輸入

3
62 12 0
12 303 0
42 192 0

範例 1 輸出

42 748683417 0

說明 1

如果先合併前兩個,則最後混合的結果為 $\frac{\frac{x_1 + x_2}2 + x_3}2$,否則為 $\frac{x_1 + \frac{x_2 + x_3}2}2$。因而結果為 $\frac 38 x_1 + \frac 14 x_2 + \frac 38 x_3$。

因此對於 $r$ 來說,期望是 $\frac 38 \times 62 + \frac 14 \times 12 + \frac 38 \times 42 = 42$,對於 $g$ 來說,期望是 $\frac{609}4$,不難驗證其在模 $998244353$ 意義下的取值是 $748683417$。

範例 2 輸入

10
181 37 150
226 168 61
126 166 129
193 56 72
202 48 192
10 14 172
83 16 95
123 246 225
211 135 239
234 2 223

範例 2 輸出

837029038 403008335 287595555

資料範圍

對於 $100\%$ 的資料,$1\le n \le 10^5, 0\le r_i, g_i, b_i \le 255$。

測試點 $n$
$1$ $=1$
$2,3,4$ $=2$
$5,6$ $=3$
$7,8,9$ $\le10$
$10,11,12,13$ $\le200$
$14,15,16,17$ $\le10^3$
$18,19,20$ $\le10^5$

說明

轉眼間,蘭已經成為了一位少女。她那紅色的眼睛現在像火炬,正如她的性格那般,散發著青春和熱情。

這時的她,喜歡在畫室裡揮灑她的能量。今天,她又開始隨心所欲地調配顏料了。

她把 $n$ 桶顏料在她面前擺成一排,每桶顏料都有 $1$ 單位體積,顏色用 $(r_i, g_i, b_i)$ 表示。接下來她會進行 $n - 1$ 次隨心所欲的調色:每次等機率選擇當前一排中兩個相鄰的顏色桶,將這兩桶顏料混合在一起,然後倒掉 $1$ 單位體積,於是兩罐顏色分別為 $(r, g, b)$ 和 $(r', g', b')$ 的顏料混合後的顏色會變為 $(\frac{r + r'}2, \frac{g + g'}2, \frac{b + b'}2)$。

「你這樣好浪費哦。」

「嘛……這才叫藝術不是!」

「哈,好吧好吧……」

「喂,你說,在所有可能的世界中,我期望調出的顏色……是什麼樣的呢?」

「你是說最終得到的顏色的 $r, g, b$ 三個值各自的期望嗎?」——「哈!在問你之前我早就算出來啦!」

「哼!我,我剛剛也算出來了!」

說話的功夫,蘭已經將顏色混合完了,她拿起筆刷蘸了一筆顏料,在畫布上隨意地畫下一筆。

「喂,顏色還沒混合均勻呢——」「還用你說,要的就是這個效果!」

那無數種鮮豔的色彩尚未融合,卻被齊刷刷留在了畫布上,那一束束細絲靜靜地在畫布上纏繞,交融。而在筆觸的末端,各種顏色相互交錯暈染,就像——

那是她眼裡流星的樣子。

她轉過身對我比了個剪刀手,「看起來還不錯吧?」笑容還和孩子的時候一樣燦爛。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.