QOJ.ac

QOJ

时间限制: 0.5 s 内存限制: 512 MB 总分: 100

#782. 大過濾器

统计

大過濾器理論(The Great Filter)認為,文明在發展過程中存在若干個重要的劃分階段,各階段之間存在著極難跨越的溝壑,以至於達到最終可以實現星際殖民階段的文明少之又少。這一理論也被認為是費米悖論的一種解釋。

The Great Filter

在本題中,我們認為文明存在 $n$ 個級別,而這 $n$ 個級別又被劃分為 $k$ 個階段。具體地,我們有陣列 $L_0, L_1, \dots, L_k$,滿足 $0 = L_0 < L_1 < \dots < L_k = n$,其中第 $L_{j-1} + 1$ 到第 $L_j$ 個文明級別被認為是處於階段 $j$ 的。

我們認為一張有向圖 $G = (V, E)$ 刻畫了文明可以通過什麼手段達到最終級別。若 $(x, y) \in E$,則說明處於 $x$ 級別的文明可以嘗試進步到 $y$ 級別(注意這裡並不保證 $x < y$!)。特別地,由於大過濾器的存在,設 $x$ 是 $j$ 階段的文明,那麼 $y$ 只可能處於 $j$ 階段或者 $j + 1$ 階段。如果 $y$ 也屬於 $j$ 階段,那麼我們認為這是一次「常規進步」,否則 $y$ 屬於 $j + 1$ 階段,我們認為這是一次「危險進步」。

我們認為現在人類文明所處的級別為 $1$ 級別,我們的目標是達到 $i$ 級別,我們需要規劃一個進步方案。方案可以表示為 $1$ 到 $n$ 的一條路徑,我們如此定義一種方案的困難程度:設計數器初始有 $s = 0$,我們按順序考慮這條路徑,每次發生一次「常規進步」,那麼 $s \leftarrow s + 1$,每次發生一次「危險進步」,那麼 $s \leftarrow s \times 2$;最後的 $s$ 值就是該進步方案的困難程度。

對於每個 $1 \le i \le n$,請你判斷是否存在一種從 $1$ 級別進步至 $i$ 級別的方案,如果存在,那麼請規劃一種方案使得困難程度最小。

輸入格式

第一行輸入三個正整數 $n, m, k$,表示文明的級別數量,圖的邊數,以及文明的階段數。

接下來一行輸入 $k - 1$ 個正整數,表示 $L_1, \dots, L_{k-1}$,如題意所示。

接下來 $m$ 行每行輸入兩個正整數 $x, y$ 表示一條邊。

輸出格式

輸出共 $n$ 行,第 $i$ 行一個整數,表示從 $1$ 級別進化到 $i$ 級別的最小困難程度。由於這個數很大,你只需要輸出其 $\pmod{998244353}$ 的結果即可。如果無法進化到 $i$ 級別,輸出 $-1$。

範例

輸入格式 1

6 6 2
3
1 2
2 3
3 4
4 5
5 6
2 6

輸出格式 1

0
1
2
4
5
2

子任務

對於 100% 的資料,保證 $2 \le k \le n \le 3 \times 10^5$,$1 \le m \le 5 \times 10^5$,$1 \le x, y \le n$。

測試點 分值 $n \le$ $m \le$ $k \le$
1 10 $10^2$ $200$ $n$
2 15 $10^5$ $2 \times 10^5$ $40$
3 10 $3 \times 10^5$ $5 \times 10^5$ $n$
4 20 $500$ $10^3$ $n$
5 20 $3 \times 10^4$ $6 \times 10^4$ $n$
6 15 $10^5$ $2 \times 10^5$ $n$
7 10 $3 \times 10^5$ $5 \times 10^5$ $n$

提示

本題輸入檔案在 10 MB 以內,輸出檔案在 5 MB 以內,請使用較快的輸入輸出方式。注意取模。

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.