QOJ.ac

QOJ

Time Limit: 1.5 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#14720. Sieć 77G

Statistics

Mapę Meowlandu można traktować jako drzewo ukorzenione o $n$ wierzchołkach i $n - 1$ krawędziach, gdzie wierzchołki reprezentują miasta, a krawędź reprezentuje drogę łączącą dwa miasta. Stolica znajduje się w korzeniu, czyli wierzchołku $1$.

Teraz Meowland chce zainstalować w niektórych miastach zupełnie nowe stacje bazowe sieci 77G. Aby zapewnić wystarczającą jakość sieci na każdej drodze, w co najmniej jednym z miast na końcach każdej drogi musi znajdować się stacja bazowa. Jednak z powodu nieznanych problemów technicznych system sieciowy ma $m$ usterek. Usterkę $i$ można opisać następująco: jeśli w mieście $x_i$ zostanie zainstalowana stacja bazowa, to we wszystkich miastach w poddrzewie $x_i$, których odległość od $x_i$ wynosi dokładnie $y_i$, nie można instalować stacji bazowych; w przeciwnym razie stacje będą się wzajemnie zakłócać i staną się bezużyteczne.

Pomóż Meowlandowi wybrać pewne miasta tak, aby zainstalowanie w nich stacji bazowych spełniało wszystkie powyższe wymagania. Jeśli nie istnieje żaden poprawny plan, wypisz No.

Wejście

Każdy plik testowy zawiera wiele przypadków testowych. Pierwszy wiersz zawiera liczbę przypadków testowych $T$ ($1 \le T \le 10^3$). Poniżej znajduje się opis przypadków testowych.

Pierwszy wiersz każdego przypadku testowego zawiera liczbę całkowitą $n$ ($2 \le n \le 2 \times 10^5$), oznaczającą liczbę miast.

Drugi wiersz zawiera $n - 1$ liczb całkowitych $f_2, f_3, \dots, f_n$ ($1 \le f_i < i$), gdzie $f_i$ oznacza ojca miasta $i$.

Trzeci wiersz zawiera liczbę całkowitą $m$ ($0 \le m \le 2 \times 10^5$), oznaczającą liczbę usterek.

Każdy z kolejnych $m$ wierszy zawiera dwie liczby całkowite $x_i$ oraz $y_i$ ($1 \le x_i, y_i \le n$), oznaczające $i$-tą usterkę. Mogą istnieć dwie identyczne usterki.

Dla każdego pliku testowego gwarantuje się, że suma $n$ po wszystkich przypadkach testowych nie przekracza $2 \times 10^5$ oraz suma $m$ po wszystkich przypadkach testowych nie przekracza $2 \times 10^5$.

Wyjście

Dla każdego przypadku testowego, jeśli nie istnieje poprawny plan, wypisz wiersz No.

W przeciwnym razie wypisz trzy wiersze opisujące Twój plan:

  • W pierwszym wierszu wypisz Yes.
  • W drugim wierszu wypisz liczbę całkowitą $c$, oznaczającą liczbę wybranych miast.
  • W trzecim wierszu wypisz $c$ różnych liczb całkowitych, oznaczających wybrane miasta.

Jeśli istnieje wiele poprawnych planów, możesz wypisać dowolny z nich. Wypisując plan, możesz podać $c$ miast w dowolnej kolejności.

Przykład

Przykładowe wejście 1

3
6
1 1 2 2 4
2
1 3
2 1
6
1 1 2 2 4
6
1 1
1 2
1 3
2 1
2 2
2 1
8
1 1 3 1 1 2 4
10
1 2
3 2
1 3
5 1
6 1
3 2
4 1
3 2
5 1
3 1

Przykładowe wyjście 1

Yes
4
5 3 4 1
No
No

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.