QOJ.ac

QOJ

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

#439. Takdir

Statistics

Petunjuk: Kami menyediakan pernyataan singkat dan formal pada paragraf terakhir deskripsi soal.

Di masa depan yang jauh, para fisikawan akhirnya menemukan hukum alam tentang waktu dan sebab-akibat. Bahkan sebelum seseorang lahir, kita dapat mengetahui sebagian informasi tentang kehidupannya melalui analisis teoretis. Dengan kata lain, fisika memungkinkan kita, sampai taraf tertentu, untuk “meramalkan” “takdir” seseorang.

Sederhananya, takdir seseorang adalah sebuah pohon berakar $T$ yang terdiri atas titik-titik waktu: akar pohon melambangkan kelahiran, sedangkan daun melambangkan kematian. Setiap simpul bukan daun $u$ memiliki satu atau lebih anak $v_1,v_2,\ldots,v_{c_u}$, yang mewakili berbagai kemungkinan yang dapat dicapai melalui $c_u$ pilihan berbeda yang dibuat orang tersebut pada waktu yang diwakili oleh $u$. Secara formal, sebuah pilihan adalah sisi $(u,v_i)$ pada pohon, dengan $u$ merupakan orang tua dari $v_i$.

Kehidupan seseorang adalah sebuah lintasan tanpa simpul berulang dari kelahiran (akar) hingga kematian (salah satu daun). Setiap sublintasan dari lintasan ini yang memuat sedikitnya satu sisi merupakan sebuah pengalaman hidup orang tersebut. Semua pengalaman hidup yang dapat diperolehnya dengan menjalani kehidupan melalui segala cara yang mungkin disebut pengalaman hidup potensial. Dengan kata lain, semua pengalaman hidup potensial adalah semua lintasan dari $u$ ke $v$ yang memenuhi $u,v\in T$, $u\ne v$, dan $u$ merupakan leluhur dari $v$. Secara matematis, pengalaman hidup potensial seperti ini dinyatakan sebagai pasangan terurut $(u,v)$, dan himpunan semua pengalaman hidup potensial pada pohon $T$ dinyatakan sebagai $P_T$.

Teori fisika tidak hanya memungkinkan kita mengamati pohon yang mewakili takdir, tetapi juga menganalisis apakah beberapa pengalaman hidup potensial bersifat “penting”. Setiap pilihan yang dibuat seseorang—yaitu setiap sisi pada pohon—dapat bersifat penting atau tidak penting. Sebuah pengalaman hidup potensial disebut penting jika dan hanya jika lintasan yang bersesuaian memuat sebuah sisi yang penting. Kita dapat mengamati bahwa beberapa pengalaman hidup potensial bersifat penting: dengan kata lain, kita dapat memperoleh sebuah himpunan $Q\subseteq P_T$ melalui pengamatan, dengan semua pengalaman hidup potensial $(u,v)\in Q$ bersifat penting.

Bentuk pohon $T$ telah lama ditentukan melalui perhitungan, dan himpunan $Q$ juga telah lama diperoleh melalui pengamatan, sehingga ketidakpastian takdir seseorang telah sangat berkurang. Namun, ketidakpastian yang tersisa masih sangat besar—mari menghitungnya. Untuk pohon $T$ dan himpunan $Q$ yang diberikan, berapa banyak cara berbeda untuk menentukan apakah setiap sisi penting, sehingga memenuhi batasan yang bersesuaian dengan $Q$ yang diamati? Artinya, untuk setiap $(u,v)\in Q$, harus ada sebuah sisi pada lintasan dari $u$ ke $v$ yang ditentukan sebagai penting.

Secara formal: Diberikan sebuah pohon $T=(V,E)$ dan himpunan pasangan simpul $Q\subseteq V\times V$, dengan setiap $(u,v)\in Q$ memenuhi $u\ne v$ dan $u$ merupakan leluhur dari $v$ pada pohon $T$. Di sini, $V$ dan $E$ masing-masing merupakan himpunan simpul dan himpunan sisi pohon $T$. Tentukan banyaknya fungsi berbeda $f:E\to\{0,1\}$ (menetapkan nilai $f(e)$ menjadi $0$ atau $1$ untuk setiap sisi $e\in E$) yang memenuhi syarat berikut: untuk setiap $(u,v)\in Q$, terdapat sebuah sisi $e$ pada lintasan dari $u$ ke $v$ sehingga $f(e)=1$. Karena jawabannya mungkin sangat besar, Anda hanya perlu mencetak hasilnya modulo $998\,244\,353$ (sebuah bilangan prima).

Masukan

Baca data dari berkas destiny.in.

  • Baris pertama berisi sebuah bilangan bulat positif $n$, yang menyatakan ukuran pohon $T$. Simpul-simpul pohon diberi nomor dari $1$ sampai $n$, dan simpul $1$ adalah akar.
  • Masing-masing dari $n-1$ baris berikutnya berisi dua bilangan $x_i,y_i$ yang dipisahkan oleh spasi, dengan $1\le x_i,y_i\le n$, yang menyatakan adanya sisi antara simpul $x_i$ dan $y_i$ pada pohon. Namun, arah sisi tersebut tidak dijamin.
  • Baris berikutnya berisi sebuah bilangan bulat nonnegatif $m$, yang menyatakan banyaknya informasi yang diperoleh melalui pengamatan.
  • Masing-masing dari $m$ baris berikutnya berisi dua bilangan $u_i,v_i$ yang dipisahkan oleh spasi, yang menyatakan $(u_i,v_i)\in Q$. Perhatikan: Data masukan dapat memuat informasi yang berulang; dengan kata lain, mungkin terdapat $i\ne j$ dengan $u_i=u_j$ dan $v_i=v_j$.

Lihat tabel di akhir soal untuk ukuran dan batasan data masukan.

Keluaran

Cetak keluaran ke berkas destiny.out.

  • Cetak satu baris berisi sebuah bilangan bulat, yaitu banyaknya cara modulo $998\,244\,353$.

Contoh

Masukan 1

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

Keluaran 1

10

Catatan

Terdapat $16$ cara secara keseluruhan. Enam cara berikut tidak memenuhi persyaratan soal:

  • $(1,2),(2,3),(3,5)$ ditentukan sebagai tidak penting dan $(3,4)$ sebagai penting: tidak ada batasan dalam $Q$ yang terpenuhi.
  • $(1,2),(2,3),(3,4),(3,5)$ ditentukan sebagai tidak penting: tidak ada batasan dalam $Q$ yang terpenuhi.
  • $(1,2),(2,3)$ ditentukan sebagai tidak penting dan $(3,4),(3,5)$ sebagai penting: batasan $(1,3)$ dalam $Q$ tidak terpenuhi.
  • $(1,2),(2,3),(3,4)$ ditentukan sebagai tidak penting dan $(3,5)$ sebagai penting: batasan $(1,3)$ dalam $Q$ tidak terpenuhi.
  • $(2,3),(3,5)$ ditentukan sebagai tidak penting dan $(1,2),(3,4)$ sebagai penting: batasan $(2,5)$ dalam $Q$ tidak terpenuhi.
  • $(2,3),(3,4),(3,5)$ ditentukan sebagai tidak penting dan $(1,2)$ sebagai penting: batasan $(2,5)$ dalam $Q$ tidak terpenuhi.
  • Dalam semua cara lainnya, seluruh batasan dalam $Q$ terpenuhi.

Masukan 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

Keluaran 2

960

Contoh 3

Lihat destiny/destiny3.in dan destiny/destiny3.ans dalam direktori peserta.

Contoh 4

Lihat destiny/destiny4.in dan destiny/destiny4.ans dalam direktori peserta.

Batasan

Nomor kasus uji $n$ $m$ $T$ merupakan pohon biner lengkap
$1$ $\le 10$ $\le 10$ Tidak
$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$ Ya
$18$
$19$ $\le 50000$ Tidak
$20$ $\le 80000$
$21$ $\le 100000$ $\le 500000$
$22$
$23$ $\le 500000$
$24$
$25$

Seluruh data memenuhi: $n\le 5\times 10^5$, $m\le 5\times 10^5$. Masukan membentuk sebuah pohon, dan untuk $1\le i\le m$, $u_i$ selalu merupakan leluhur dari $v_i$.

Pohon biner lengkap: Dalam soal ini, sebuah pohon yang setiap simpul bukan daunnya memiliki anak kiri dan anak kanan, serta semua daunnya memiliki kedalaman yang sama, disebut pohon biner sempurna. Beri nomor simpul-simpul pohon biner sempurna dari atas ke bawah dan dari kiri ke kanan; pohon yang dibentuk oleh beberapa simpul dengan nomor terkecil disebut pohon biner lengkap.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.