QOJ.ac

QOJ

时间限制: 1.5 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#14720. Rete 77G

统计

La mappa di Meowland può essere considerata come un albero radicato con $n$ nodi e $n - 1$ archi, dove i nodi rappresentano le città e un arco rappresenta una strada che collega due città. La capitale si trova nella radice, il nodo $1$.

Ora Meowland vuole installare nuovissime stazioni base della rete 77G in alcune città. Per garantire che ogni strada abbia una qualità di rete sufficiente, almeno una delle città agli estremi di ciascuna strada deve avere una stazione base. Tuttavia, a causa di problemi tecnici sconosciuti, il sistema di rete presenta $m$ guasti. Il guasto $i$ può essere descritto come segue: se viene installata una stazione base nella città $x_i$, allora in tutte le città nel sottoalbero di $x_i$ la cui distanza da $x_i$ è esattamente $y_i$ non è possibile installare stazioni base; altrimenti, le stazioni interferiranno tra loro diventando inutilizzabili.

Aiuta Meowland a scegliere alcune città in modo che l'installazione delle stazioni base in tali città soddisfi tutti i requisiti sopra indicati. Se non esiste alcuno schema valido, stampa No.

Input

Ogni file di test contiene più casi di test. La prima riga contiene il numero di casi di test $T$ ($1 \le T \le 10^3$). Segue la descrizione dei casi di test.

La prima riga di ogni caso di test contiene un intero $n$ ($2 \le n \le 2 \times 10^5$), che indica il numero di città.

La seconda riga contiene $n - 1$ interi $f_2, f_3, \dots, f_n$ ($1 \le f_i < i$), dove $f_i$ indica il genitore della città $i$.

La terza riga contiene un intero $m$ ($0 \le m \le 2 \times 10^5$), che indica il numero di guasti.

Ciascuna delle successive $m$ righe contiene due interi $x_i$ e $y_i$ ($1 \le x_i, y_i \le n$), che indicano l'$i$-esimo guasto. Possono esistere due guasti identici.

Per ogni file di test, è garantito che la somma di $n$ su tutti i casi di test non supera $2 \times 10^5$, e la somma di $m$ su tutti i casi di test non supera $2 \times 10^5$.

Output

Per ogni caso di test, se non esiste alcuno schema valido, stampa una riga No.

Altrimenti, stampa tre righe che rappresentano il tuo schema:

  • Sulla prima riga stampa Yes.
  • Sulla seconda riga stampa un intero $c$, che indica il numero di città che scegli.
  • Sulla terza riga stampa $c$ interi distinti, che indicano le città che scegli.

Se esistono più schemi validi, puoi stamparne uno qualsiasi. Quando stampi lo schema, puoi elencare le $c$ città in qualsiasi ordine.

Esempio

Input di esempio 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

Output di esempio 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.