QOJ.ac

QOJ

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

#10348. A+B 問題

Statistics

題目名字是吸引你點進來的~~~

JOHNKRAM 最近在研究圖論。今天他遇到了這樣一道題:給一張有向圖,保證沒有重邊和自環。求把這張圖的強連通分量縮成點之後,有多少個點入度為 $0$。

JOHNKRAM 使用 tarjan 演算法輕而易舉地切掉了這道題。但他發現有很多人程式碼寫得比他短多了,於是他要來了程式,結果發現這個程式是列印 $1$ 的 = =。難道隨機資料真的這麼水嗎?於是他隨機生成了很多張有向圖,結果他發現答案真的全是 $1$ = =。於是他更改了隨機生成的方式,只生成每個強連通分量大小都屬於某個集合 $S$ 的有向圖,結果答案立刻就變大了。

現在 JOHNKRAM 把那些人都卡掉了,但他想證明一下資料的強度,所以他提出了一個問題:對於所有帶標號點數為 $i(1\leq i\leq n)$ 的每個強連通分量大小都屬於集合 $S$ 的有向圖,之前問題的答案的期望是多少?他發現自己不會證明了,於是他來向你請教。

輸入格式

輸入第一行包含 $1$ 個正整數 $n$,表示生成的有向圖的最大點數。

接下來 $n$ 行,第 $i$ 行包含一個整數 $s_i$。如果 $s_i=1$,則 $i$ 在集合 $S$ 中,否則 $i$ 不在集合 $S$ 中。

輸出格式

共輸出 $n$ 行,每行包含一個整數。第 $i$ 行的整數表示對於所有帶標號點數為 $i(1\leq i\leq n)$ 的每個強連通分量大小都屬於集合 $S$ 的有向圖,之前問題的答案的期望 $mod\ 998244353$ 的結果,如果沒有合法的有向圖則輸出 $0$。設期望值為 $a/b$($a$ 和 $b$ 為互質的正整數),你輸出的整數為 $x$,則你需要保證 $bx\equiv a(mod\ 998244353)$ 且 $0\leq x < 998244353$。

範例

範例輸入 1

3
1
0
0

範例輸出 1

1
332748119
519087065

說明

點數為 $1$ 的有向圖中,答案為 $1$ 的合法有向圖有 $1$ 張,所以答案為 $1$,$mod\ 998244353$ 後為 $1$。

點數為 $2$ 的有向圖中,答案為 $1$ 的合法有向圖有 $2$ 張,答案為 $2$ 的合法有向圖有 $1$ 張,所以答案為 $\frac{4}{3}$,$mod\ 998244353$ 後為 $332748119$。

點數為 $3$ 的有向圖中,答案為 $1$ 的合法有向圖有 $15$ 張,答案為 $2$ 的合法有向圖有 $9$ 張,答案為 $3$ 的合法有向圖有 $1$ 張,所以答案為 $\frac{36}{25}$,$mod\ 998244353$ 後為 $519087065$。

資料範圍

對於全部測試資料,$1\leq n\leq 100000$,$0\leq s_i\leq 1$。

測試點編號 $n\leq$ 其他約定
1 4
2 1000 $\forall 1\leq i\leq \lceil \frac{n}{2}\rceil ,s_i=0$
3 1000 $\forall 1\leq i\leq n,s_i=[i==1]$
4 1000 $\forall 1\leq i\leq n,s_i=[i==1]$
5 1000 $\forall 1\leq i\leq n,s_i=[i==1]$
6 1000 $\forall 1\leq i\leq \lceil \frac{n}{3}\rceil ,s_i=0$
7 1000 $\forall 1\leq i\leq \lceil \frac{n}{3}\rceil ,s_i=0$
8 1000 $\forall 1\leq i\leq \lceil \frac{n}{3}\rceil ,s_i=0$
9 1000 $\exists x,\forall 1\leq i\leq n,s_i=[i==x]$
10 1000 $\exists x,\forall 1\leq i\leq n,s_i=[i==x]$
11 1000 $\exists x,\forall 1\leq i\leq n,s_i=[i==x]$
12 1000
13 1000
14 1000
15 100000
16 100000
17 100000
18 100000
19 100000
20 100000

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.