QOJ.ac

QOJ

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

#21098. Łamanie kodu

Statistics

Krowy ciągle sprawiają kłopoty, jeżdżąc traktorem Farmer John, więc ukrył klucze w nowym eleganckim sejfie w biurze. Niezrażone postanowiły go otworzyć.

Sejf ma skomplikowany system kodu. Wprowadzanie tworzy ukorzenione drzewo $N$ wierzchołków ($1 \leq N \leq 20,000$), każdy wymaga cyfry od 0 do 9. Numeracja to $0..N-1$.

Wiedzą tylko, że pewne ciągi długości 5 nie występują na określonych ścieżkach w górę drzewa.

Na przykład drzewo z korzeniem A wygląda tak:

A <- B <- C <- D <- E
               ^
               |
               F

Mogą wiedzieć, że 01234 nie zaczyna się w $F$, a 91234 w $E$. Wyklucza to 19 kodów, wszystkie postaci:

4 <- 3 <- 2 <- 1 <- *
               ^
               |
               0

lub

4 <- 3 <- 2 <- 1 <- 9
               ^
               |
               *

po uwzględnieniu, że:

4 <- 3 <- 2 <- 1 <- 9
               ^
               |
               0

występuje dwa razy, otrzymujemy 19.

Mając $M$ ciągów długości 5 ($1 \leq M \leq 50,000$) i wierzchołki początkowe, oblicz liczbę wykluczonych kodów modulo 1234567.

Wejście

  • Wiersz $1$: całkowite $N$ i $M$ rozdzielone spacją.
  • Wiersze $2..N$: wiersz $i+1$ zawiera całkowite $p_i$, rodzica wierzchołka $i$ ($0 \leq p_i < i$).
  • Wiersze $N+1..N+M$: wiersz $N+i$ opisuje niewystępujący ciąg $i$. Zawiera $v_i$ i $s_i$ rozdzielone spacją. $v_i$ to wierzchołek początkowy, a $s_i$ napis 5 cyfr niewystępujący od $v_i$ w górę. Korzeń jest co najmniej 4 kroki nad $v_i$.

Wyjście

  • Wiersz $1$: liczba całkowita wykluczonych konfiguracji modulo 1234567.

Przykład

Wejście 1

6 2
0
1
2
3
3
4 01234
5 91234

Wyjście 1

19

Autor zadania: Jacob Steinhardt, 2014

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.