QOJ.ac

QOJ

Limite de temps : 1.5 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#14720. Mạng 77G

Statistiques

Bản đồ của Meowland có thể được coi như một cây có gốc gồm $n$ đỉnh và $n - 1$ cạnh, trong đó các đỉnh biểu thị các thành phố và một cạnh biểu thị một con đường nối hai thành phố. Thủ đô nằm ở gốc, tức đỉnh $1$.

Hiện tại Meowland muốn lắp đặt các trạm thu phát sóng mạng 77G hoàn toàn mới tại một số thành phố. Để đảm bảo mọi con đường đều có chất lượng mạng đủ tốt, ít nhất một trong hai thành phố ở hai đầu mút của mỗi con đường phải có trạm thu phát sóng. Tuy nhiên, do các sự cố kỹ thuật chưa rõ nguyên nhân, hệ thống mạng có $m$ lỗi. Lỗi thứ $i$ có thể được mô tả như sau: nếu một trạm thu phát sóng được lắp đặt tại thành phố $x_i$, thì tất cả các thành phố nằm trong cây con gốc $x_i$ có khoảng cách đến $x_i$ đúng bằng $y_i$ đều không thể lắp đặt trạm thu phát sóng; nếu không, các trạm sẽ gây nhiễu lẫn nhau và trở nên không thể sử dụng được.

Hãy giúp Meowland chọn một số thành phố sao cho việc lắp đặt trạm thu phát sóng tại các thành phố đó thỏa mãn tất cả các yêu cầu trên. Nếu không tồn tại phương án hợp lệ nào, hãy in ra No.

Dữ liệu

Mỗi tệp dữ liệu chứa nhiều bộ test. Dòng đầu tiên chứa số lượng bộ test $T$ ($1 \le T \le 10^3$). Mô tả của các bộ test theo sau.

Dòng đầu tiên của mỗi bộ test chứa một số nguyên $n$ ($2 \le n \le 2 \times 10^5$), biểu thị số lượng thành phố.

Dòng thứ hai chứa $n - 1$ số nguyên $f_2, f_3, \dots, f_n$ ($1 \le f_i < i$), trong đó $f_i$ biểu thị nút cha của thành phố $i$.

Dòng thứ ba chứa một số nguyên $m$ ($0 \le m \le 2 \times 10^5$), biểu thị số lượng lỗi.

Mỗi dòng trong $m$ dòng tiếp theo chứa hai số nguyên $x_i$ và $y_i$ ($1 \le x_i, y_i \le n$), biểu thị lỗi thứ $i$. Có thể tồn tại hai lỗi giống hệt nhau.

Đối với mỗi tệp dữ liệu, đảm bảo rằng tổng của $n$ trên tất cả các bộ test không vượt quá $2 \times 10^5$, và tổng của $m$ trên tất cả các bộ test không vượt quá $2 \times 10^5$.

Kết quả

Với mỗi bộ test, nếu không có phương án hợp lệ, hãy in ra một dòng No.

Ngược lại, hãy in ra ba dòng biểu thị phương án của bạn:

  • Trên dòng đầu tiên in ra Yes.
  • Trên dòng thứ hai in ra một số nguyên $c$, biểu thị số lượng thành phố mà bạn chọn.
  • Trên dòng thứ ba in ra $c$ số nguyên phân biệt, biểu thị các thành phố mà bạn chọn.

Nếu có nhiều phương án hợp lệ, bạn có thể in ra bất kỳ phương án nào. Khi in phương án, bạn có thể in $c$ thành phố theo bất kỳ thứ tự nào.

Ví dụ

Dữ liệu mẫu 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

Kết quả mẫu 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.