提示:我們在題目敘述的最後一段提供了一份簡要的、形式化描述的題面。
在遙遠的未來,物理學家終於發現了時間和因果的自然規律。即使在一個人出生前,我們也可以透過理論分析知曉他或她人生的一些資訊,換言之,物理學允許我們從一定程度上「預言」一個人的「命運」。
簡單來說,一個人的命運是一棵由時間點構成的有根樹 $T$:樹的根節點代表著出生,而葉節點代表著死亡。每個非葉節點 $u$ 都有一個或多個孩子 $v_1,v_2,\ldots,v_{c_u}$,表示這個人在 $u$ 所代表的時間點做出的 $c_u$ 個不同的選擇可以導向的不同的可能性。形式化地,一個選擇就是樹上的一條邊 $(u,v_i)$,其中 $u$ 是 $v_i$ 的父節點。
一個人的一生是從出生(即根節點)到死亡(即某一個葉節點)的一條不經過重複節點的路徑,這條路徑上任何一個包含至少一條邊的子路徑都是這個人的一段人生經歷,而他或她以所有可能的方式度過一生,從而擁有的所有人生經歷,都被稱為潛在的人生經歷。換言之,所有潛在的人生經歷就是所有 $u$ 到 $v$ 的路徑,滿足 $u,v\in T$,$u\ne v$,並且 $u$ 是 $v$ 的祖先。在數學上,這樣一個潛在的人生經歷被記作有序對 $(u,v)$,樹 $T$ 所有潛在的人生經歷的集合記作 $\mathcal{P}_T$。
物理理論不僅允許我們觀測代表命運的樹,還能讓我們分析一些潛在的人生經歷是否是「重要」的。一個人所做出的每一個選擇——即樹上的每一條邊——都可能是重要或不重要的。一段潛在的人生經歷被稱為重要的,若且唯若其對應的路徑上存在一條邊是重要的。我們可以觀測到一些潛在的人生經歷是重要的:換言之,我們可以觀測得到一個集合 $Q\subseteq\mathcal{P}_T$,滿足其中的所有潛在的人生經歷 $(u,v)\in Q$ 都是重要的。
樹 $T$ 的形態早已被計算確定,集合 $Q$ 也早已被觀測得到,一個人命運的不確定性已經大大降低了。但不確定性仍然是巨大的——來計算一下吧,對於給定的樹 $T$ 和集合 $Q$,存在多少種不同的方案確定每條邊是否是重要的,使之滿足所觀測到的 $Q$ 所對應的限制:即對於任意 $(u,v)\in Q$,都存在一條 $u$ 到 $v$ 路徑上的邊被確定為重要的。
形式化地:給定一棵樹 $T=(V,E)$ 和點對集合 $Q\subseteq V\times V$,滿足對於所有 $(u,v)\in Q$,都有 $u\ne v$,並且 $u$ 是 $v$ 在樹 $T$ 上的祖先。其中 $V$ 和 $E$ 分別代表樹 $T$ 的節點集和邊集。求有多少個不同的函數 $f:E\to\{0,1\}$(將每條邊 $e\in E$ 的 $f(e)$ 值設為 $0$ 或 $1$),滿足對於任何 $(u,v)\in Q$,都存在 $u$ 到 $v$ 路徑上的一條邊 $e$ 使得 $f(e)=1$。由於答案可能非常大,你只需要輸出結果對 $998\,244\,353$(一個質數)取模的結果。
輸入格式
從檔案 destiny.in 中讀入資料。
- 第一行包含一個正整數 $n$,表示樹 $T$ 的大小,樹上節點從 $1$ 到 $n$ 編號,$1$ 號節點為根節點;
- 接下來 $n-1$ 行每行包含以空格隔開的兩個數 $x_i,y_i$,滿足 $1\le x_i,y_i\le n$,表示樹上的節點 $x_i$ 和 $y_i$ 之間存在一條邊,但並不保證這條邊的方向;
- 接下來一行包含一個非負整數 $m$,表示所觀測得到資訊的條數。
- 接下來 $m$ 行每行包含以空格隔開的兩個數 $u_i,v_i$,表示 $(u_i,v_i)\in Q$。請注意:輸入資料可能包含重複的資訊,換言之可能存在 $i\ne j$,滿足 $u_i=u_j$ 且 $v_i=v_j$。
輸入資料規模和限制參見本題末尾的表格。
輸出格式
輸出到檔案 destiny.out 中。
- 輸出僅一行一個整數,表示方案數對 $998\,244\,353$ 取模的結果。
範例
輸入格式 1
5 1 2 2 3 3 4 3 5 2 1 3 2 5
輸出格式 1
10
說明
共有 $16$ 種方案,其中不滿足題意的方案有以下 $6$ 種:
- $(1,2),(2,3),(3,5)$ 確定為不重要,$(3,4)$ 確定為重要:集合 $Q$ 中沒有任何限制被滿足。
- $(1,2),(2,3),(3,4),(3,5)$ 確定為不重要:集合 $Q$ 中沒有任何限制被滿足。
- $(1,2),(2,3)$ 確定為不重要,$(3,4),(3,5)$ 確定為重要:集合 $Q$ 中 $(1,3)$ 沒被滿足。
- $(1,2),(2,3),(3,4)$ 確定為不重要,$(3,5)$ 確定為重要:集合 $Q$ 中 $(1,3)$ 沒被滿足。
- $(2,3),(3,5)$ 確定為不重要,$(1,2),(3,4)$ 確定為重要:集合 $Q$ 中 $(2,5)$ 沒被滿足。
- $(2,3),(3,4),(3,5)$ 確定為不重要,$(1,2)$ 確定為重要:集合 $Q$ 中 $(2,5)$ 沒被滿足。
- 其他方案下,集合 $Q$ 中的限制都被滿足了。
輸入格式 2
15 2 1 3 1 4 3 5 2 6 3 7 6 8 4 9 5 10 7 11 5 12 10 13 3 14 9 15 8 6 3 12 5 11 2 5 3 13 8 15 1 13
輸出格式 2
960
範例 3
見選手目錄下的 destiny/destiny3.in 與 destiny/destiny3.ans。
範例 4
見選手目錄下的 destiny/destiny4.in 與 destiny/destiny4.ans。
資料範圍
| 測試點編號 | $n$ | $m$ | $T$ 為完全二元樹 |
|---|---|---|---|
| $1$ | $\le 10$ | $\le 10$ | 否 |
| $2$ | |||
| $3$ | |||
| $4$ | |||
| $5$ | $\le 500$ | $\le 15$ | |
| $6$ | $\le 10000$ | $\le 10$ | |
| $7$ | $\le 100000$ | $\le 16$ | |
| $8$ | $\le 500000$ | ||
| $9$ | $\le 100000$ | $\le 22$ | |
| $10$ | $\le 500000$ | ||
| $11$ | $\le 600$ | $\le 600$ | |
| $12$ | $\le 1000$ | $\le 1000$ | |
| $13$ | $\le 2000$ | $\le 500000$ | |
| $14$ | |||
| $15$ | $\le 500000$ | $\le 2000$ | |
| $16$ | |||
| $17$ | $\le 100000$ | $\le 100000$ | 是 |
| $18$ | |||
| $19$ | $\le 50000$ | 否 | |
| $20$ | $\le 80000$ | ||
| $21$ | $\le 100000$ | $\le 500000$ | |
| $22$ | |||
| $23$ | $\le 500000$ | ||
| $24$ | |||
| $25$ |
全部資料滿足:$n\le 5\times10^5$,$m\le 5\times10^5$。輸入構成一棵樹,並且對於 $1\le i\le m$,$u_i$ 始終為 $v_i$ 的祖先節點。
完全二元樹:在本題中,每個非葉節點都有左右子節點,且所有葉節點深度相同的樹稱為滿二元樹;將滿二元樹中的節點按照從上到下、從左向右的順序編號,編號最小的若干個節點形成的樹稱為完全二元樹。