提示: 我哋喺題目描述嘅最後一段提供咗一份簡短嘅形式化題面。
喺遙遠嘅未來,物理學家終於發現咗時間同因果嘅自然規律。即使一個人仲未出世,我哋都可以透過理論分析知道佢人生嘅一啲資訊。換句話講,物理學容許我哋喺一定程度上「預言」一個人嘅「命運」。
簡單嚟講,一個人嘅命運係一棵由時間點構成嘅有根樹 $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$。
物理理論唔單止容許我哋觀測代表命運嘅樹,仲可以畀我哋分析一啲潛在嘅人生經歷係咪「重要」。一個人作出嘅每個選擇——即樹上嘅每條邊——都可能係重要或者唔重要。一段潛在嘅人生經歷叫做重要,當且僅當佢對應嘅路徑上有一條重要嘅邊。我哋可以觀測到一啲潛在嘅人生經歷係重要嘅:換句話講,我哋可以觀測得到一個集合 $\mathcal{Q}\subseteq\mathcal{P}_T$,滿足入面所有潛在嘅人生經歷 $(u,v)\in\mathcal{Q}$ 都係重要嘅。
樹 $T$ 嘅形態一早已經計算確定,集合 $\mathcal{Q}$ 亦一早已經觀測得到,一個人命運嘅不確定性已經大大降低。但不確定性仍然好大——一齊計下啦:對於畀定嘅樹 $T$ 同集合 $\mathcal{Q}$,有幾多種唔同方案可以決定每條邊係咪重要,同時滿足觀測到嘅 $\mathcal{Q}$ 所對應嘅限制?即係對任何 $(u,v)\in\mathcal{Q}$,由 $u$ 到 $v$ 嘅路徑上都至少有一條邊被定為重要。
形式化描述: 畀定一棵樹 $T=(V,E)$ 同點對集合 $\mathcal{Q}\subseteq V\times V$,滿足對所有 $(u,v)\in\mathcal{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\mathcal{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\mathcal{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)$ 定為重要:集合 $\mathcal{Q}$ 入面冇任何限制得到滿足。
- $(1,2),(2,3),(3,4),(3,5)$ 定為唔重要:集合 $\mathcal{Q}$ 入面冇任何限制得到滿足。
- $(1,2),(2,3)$ 定為唔重要,$(3,4),(3,5)$ 定為重要:集合 $\mathcal{Q}$ 入面嘅 $(1,3)$ 冇得到滿足。
- $(1,2),(2,3),(3,4)$ 定為唔重要,$(3,5)$ 定為重要:集合 $\mathcal{Q}$ 入面嘅 $(1,3)$ 冇得到滿足。
- $(2,3),(3,5)$ 定為唔重要,$(1,2),(3,4)$ 定為重要:集合 $\mathcal{Q}$ 入面嘅 $(2,5)$ 冇得到滿足。
- $(2,3),(3,4),(3,5)$ 定為唔重要,$(1,2)$ 定為重要:集合 $\mathcal{Q}$ 入面嘅 $(2,5)$ 冇得到滿足。
- 喺其他方案下,集合 $\mathcal{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\times 10^5$,$m\le 5\times 10^5$。輸入構成一棵樹,而且對於 $1\le i\le m$,$u_i$ 始終係 $v_i$ 嘅祖先節點。
完全二元樹: 喺呢題入面,每個非葉節點都有左右子節點,而且所有葉節點深度相同嘅樹叫做滿二元樹;將滿二元樹嘅節點按照由上到下、由左至右嘅順序編號,編號最細嘅若干個節點形成嘅樹叫做完全二元樹。