QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 512 MB 満点: 100

#13452. Wielka ryba pije wodę

統計

Autor zadania jest leniwy, więc nie napisał żadnego wstępu.

Jesteś wielką rybą. Ponieważ żyjesz w pełnej harmonii z wodą, pływasz w niej niezwykle szybko, więc każdego dnia przemieszczasz się tam i z powrotem.

Pewnego dnia budzisz się i odkrywasz, że znajdujesz się w labiryncie złożonym z wielu pokoi i kanałów wodnych. Bez trudu zdobywasz mapę tego labiryntu:

Odkrywasz, że labirynt można przedstawić jako spójny graf nieskierowany, bez wielokrotnych krawędzi i pętli własnych, w którym każda krawędź należy do co najwyżej jednego cyklu prostego. Pokoje można traktować jako wierzchołki, ponumerowane od $1$ do $n$, a kanały jako krawędzie łączące bezpośrednio dwa pokoje.

Drogi w labiryncie są skomplikowane, ale przejrzałeś mapę na wylot. Choć wiesz, jak się wydostać, musisz wypełnić swoją chwalebną misję – "grindowanie" – więc wyjście musi poczekać. Odkrywasz, że podczas pracy trudno jest wyraźnie widzieć drogę, więc decydujesz się na chaotyczne bieganie, czyli błądzenie losowe.

Formalnie rzecz biorąc, w każdym pokoju wybierasz z równym prawdopodobieństwem jedną z krawędzi wychodzących z obecnego pokoju i przemieszczasz się bezpośrednio do drugiego końca tej krawędzi (podczas przemieszczania się pozostajesz wewnątrz tego kanału).

Wiesz, że wcale nie jesteś pracowity, ale wierzysz w swoje szczęście, więc ciężar wydostania się z labiryntu powierzasz losowi (rp), a sobie zostawiasz cel zdobycia $151$ punktów.

Nie wiesz jednak, w którym pokoju zacząłeś. Dlatego chcesz wiedzieć dla każdego pokoju: jeśli zaczniesz w nim, jaka jest oczekiwana liczba kanałów, które pokonasz, aż dotrzesz do wyjścia.

Oczywiście, zgodnie z konwencją, musimy obliczyć tę wartość oczekiwaną modulo $998244353$. Można udowodnić, że wynik zawsze można przedstawić jako liczbę wymierną $\frac{a}{b}$, wystarczy wypisać $a \times b^{-1} \pmod{998244353}$.

Wejście

Pierwsza linia zawiera trzy liczby całkowite dodatnie $n, m, C$, oznaczające odpowiednio liczbę pokoi, liczbę kanałów oraz liczbę wyjść.

Druga linia zawiera $C$ liczb całkowitych dodatnich $c_i$, oznaczających numery wyjść. Gwarantuje się, że numery są parami różne i każdy z nich reprezentuje istniejący pokój.

Kolejne $m$ linii zawiera po dwie liczby całkowite dodatnie $u_i, v_i$, oznaczające kanał wodny.

Wyjście

Wypisz $n$ linii, z których każda zawiera nieujemną liczbę całkowitą z zakresu $[0, 998244353)$, oznaczającą oczekiwaną liczbę pokonanych kanałów, zaczynając od pokoju o numerze $i$.

Przykład

Wejście 1

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

Wyjście 1

0
13
15
15
15
15

Wejście 2

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

Wyjście 2

7
499122181
0
499122184
499122186
499122186

Wejście 3

20 24 3
15 20 10
17 13
13 20
20 17
2 20
13 9
9 19
19 13
17 4
4 3
3 17
13 1
1 7
7 13
15 1
8 20
16 4
18 9
4 6
6 5
5 4
11 13
10 3
12 7
14 9

Wyjście 3

873463818
1
873463818
499122191
499122193
499122193
499122189
1
790276796
0
124780557
499122190
124780556
790276797
0
499122192
124780554
790276797
457528677
0

Podzadania

Z pewnych powodów dane w tym zadaniu są generowane w sposób podobny do losowego wybierania dla każdego wierzchołka krawędzi łączącej go z wierzchołkiem o mniejszym numerze. Takie dane są dość losowe, więc w dużej mierze można pominąć przypadek obliczania odwrotności $0$ w trakcie obliczeń.

Dla wszystkich danych wejściowych zachodzi $2 \leq n \leq 10^5, 1 \leq m \leq 1.5 \times 10^5, 1 \leq C \leq n$.

Podzadanie Punkty Dodatkowe ograniczenia
1 5% $n \leq 300$
2 5% Graf jest drzewem
3 10% Każdy cykl w grafie zawiera co najmniej jedno wyjście
4 40% $m = n$
5 40% Brak dodatkowych ograniczeń

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.