QOJ.ac

QOJ

Time Limit: 10 s Memory Limit: 512 MB Total points: 100 Difficulty: [show] Hackable ✓

#1222. Wielokąt

Statistics

久莲 jest dziewczyną, która lubi układać zadania.

Po zakończeniu tegorocznego World Final 久莲 szczególnie polubiła geometrię obliczeniową, więc postanowiła przygotować takie zadanie również na zawody NOI: zadanie, którego tylko nazwa ma związek z geometrią obliczeniową.

Najpierw 久莲 podaje ukorzenione drzewo $T$ o $n$ ($n\ge2$) wierzchołkach, z korzeniem o numerze $1$. Liśćmi nazywamy wszystkie wierzchołki oprócz korzenia, których stopień jest równy dokładnie $1$. Poniżej przedstawiono przykładowe drzewo $T$, w którym zbiór liści to $\{3,4,5\}$.

problem_1222_29bb8620f60847af6b7a87ca07161e72.png

Następnie 久莲 konstruuje na podstawie tego drzewa ciąg $A$:

  • Wykonuje przeszukiwanie całego drzewa w głąb, zaczynając od korzenia, odwiedzając dzieci w kolejności rosnących numerów. Otrzymuje w ten sposób kolejność DFS drzewa $T$.
  • Następnie ustawia wszystkie liście w kolejności ich występowania w kolejności DFS, od początku do końca, otrzymując ciąg $A$.

Na podstawie ciągu $A$ 久莲 definiuje odległość $d(u,v)$ między dwoma liśćmi $u,v$. Jeśli $u$ jest $i$-tym elementem ciągu $A$, a $v$ jest $j$-tym, to $d(u,v)=\min(|i-j|,|A|-|i-j|)$. Symbol $|A|$ oznacza długość ciągu, czyli liczbę liści drzewa $T$, a $i,j$ są pozycjami w ciągu, numerowanymi od $1$.

W powyższym przykładzie ciąg $A$ to $[4,5,3]$, a $d(3,5)=d(3,4)=d(4,5)=1$. Pozycje wierzchołków $3,4,5$ wynoszą odpowiednio $3,1,2$.

Na koniec 久莲 podaje parametr $K$. Korzystając z ukorzenionego drzewa $T$ i ciągu $A$, możemy skonstruować nieskierowany graf $G$ o $n$ wierzchołkach, bez krawędzi wielokrotnych i pętli. Dwa różne wierzchołki $u,v$ są połączone krawędzią wtedy i tylko wtedy, gdy spełniają co najmniej jeden z poniższych warunków:

  • W drzewie $T$ istnieje krawędź łącząca $u,v$.
  • W drzewie $T$ oba wierzchołki $u,v$ są liśćmi i $d(u,v)\le K$.

Dla $K=1$ lub $K=2$ graf $G$ otrzymany z powyższego przykładu wygląda tak, jak na poniższym rysunku.

久莲 chce teraz, abyś obliczył liczbę różnych cykli Hamiltona w grafie $G$. Odpowiedź może być bardzo duża; wypisz ją modulo $998244353$.

problem_1222_cada1236b9bea63818a7372f7f4fb42a.png

Poniżej podano dodatkowe definicje:

  • Cykl Hamiltona $H$ w nieskierowanym grafie $G$ bez krawędzi wielokrotnych i pętli jest podzbiorem krawędzi grafu $G$, w którym każdy wierzchołek ma dokładnie dwie różne incydentne krawędzie należące do $H$, a między każdymi dwoma wierzchołkami można przejść bezpośrednio lub pośrednio, korzystając z krawędzi należących do $H$.
  • Dwa cykle Hamiltona $H_1,H_2$ w nieskierowanym grafie $G$ bez krawędzi wielokrotnych i pętli są różne wtedy i tylko wtedy, gdy istnieje krawędź $e$ należąca do $H_1$ i nienależąca do $H_2$.

Wejście

Dane należy odczytać z pliku polygon.in.

Pierwszy wiersz zawiera dwie liczby całkowite $n,K$, oznaczające liczbę wierzchołków drzewa $T$ oraz parametr $K$ wybrany przez 久莲.

Drugi wiersz zawiera $n-1$ liczb całkowitych $f_i$ ($1\le f_i\le i$), gdzie $f_i$ oznacza, że w drzewie $T$ istnieje krawędź $(f_i,i+1)$.

Wyjście

Wyniki należy zapisać do pliku polygon.out.

Wypisz w jednym wierszu jedną liczbę całkowitą: liczbę cykli Hamiltona modulo $998244353$.

Przykład

Wejście 1

5 1
1 1 2 2

Wyjście 1

2

Uwagi

Ten przykład jest dokładnie taki sam jak przykład w treści zadania. Kolejności odwiedzania wierzchołków w dwóch cyklach Hamiltona to odpowiednio $(1,2,4,5,3)$ oraz $(1,2,5,4,3)$.

Podzadania

Rozmiary danych i własności poszczególnych testów przedstawiono w poniższej tabeli:

Numer $n$ $K$ Własności szczególne Numer $n$ $K$ Własności szczególne
1 $\le5$ $\le3$ Brak 11 $\le1000$ $\le2$ A
2 $\le10$ $\le3$ Brak 12 $\le1000$ $\le2$ A
3 $\le15$ $\le3$ Brak 13 $\le1000$ $\le2$ A
4 $\le20$ $\le3$ Brak 14 $\le1000$ $\le2$ Brak
5 $\le1000$ $=1$ A 15 $\le1000$ $\le2$ Brak
6 $\le1000$ $=1$ A 16 $\le1000$ $\le2$ Brak
7 $\le1000$ $=1$ A 17 $\le1000$ $\le3$ A
8 $\le1000$ $=1$ Brak 18 $\le1000$ $\le3$ A
9 $\le1000$ $=1$ Brak 19 $\le1000$ $\le3$ Brak
10 $\le1000$ $=1$ Brak 20 $\le1000$ $\le3$ Brak

Własność A oznacza, że każdy wierzchołek drzewa ma co najwyżej dwoje dzieci.

Dla wszystkich danych gwarantuje się, że $1\le f_i\le i$, $2\le n\le1000$.

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.