QOJ.ac

QOJ

実行時間制限: 2.0 s メモリ制限: 2048 MB

#22850. Trò chơi trượt sỏi trên cây

統計

Bạn được cho một cây gồm $N$ đỉnh được đánh số từ $1$ đến $N$. Cạnh thứ $i$ của cây nối hai đỉnh $u_i$ và $v_i$. Ban đầu, với mỗi $i$ ($1 \le i \le N$), đỉnh $i$ chứa một viên sỏi nếu $A_i = 1$ và không chứa viên sỏi nào nếu $A_i = 0$.

Bạn có thể thực hiện lặp lại thao tác sau:

  • Chọn một cạnh chưa từng được chọn mà có đúng một trong hai đầu mút của nó chứa sỏi, rồi di chuyển viên sỏi đó sang đầu mút còn lại.

Hãy xác định xem bạn có thể thực hiện thao tác đúng $N - 1$ lần hay không. Nếu có thể, hãy in ra thứ tự các cạnh được chọn.

Dữ liệu vào

Dữ liệu vào gồm một hoặc nhiều bộ test. Dòng đầu tiên của dữ liệu vào chứa một số nguyên $T$ ($1 \le T \le 10^5$) là số lượng bộ test. Mô tả của $T$ bộ test tiếp theo, mỗi bộ test có định dạng như sau.

$$ \begin{aligned} &N \\ &u_1 \ v_1 \\ &u_2 \ v_2 \\ &\vdots \\ &u_{N-1} \ v_{N-1} \\ &A_1 \ A_2 \ \ldots \ A_N \end{aligned} $$

Dòng đầu tiên chứa một số nguyên $N$ ($2 \le N \le 2 \times 10^5$) biểu thị số lượng đỉnh.

Với mỗi $i$ ($1 \le i \le N - 1$), dòng thứ $i$ trong $N - 1$ dòng tiếp theo chứa hai số nguyên $u_i$ và $v_i$ ($1 \le u_i, v_i \le N$) cách nhau bởi một khoảng trắng, biểu thị cạnh thứ $i$ nối hai đỉnh $u_i$ và $v_i$. Đảm bảo rằng đồ thị đã cho là một cây.

Dòng cuối cùng chứa $N$ số nguyên $A_1, A_2, \ldots, A_N$ ($A_i \in \{0, 1\}$) cách nhau bởi khoảng trắng. $A_i$ biểu thị việc ban đầu có một viên sỏi được đặt trên đỉnh $i$ hay không.

Tổng của $N$ trên tất cả các bộ test không vượt quá $2 \times 10^5$.

Dữ liệu ra

Với mỗi bộ test, hãy in ra câu trả lời như sau.

Nếu không thể thực hiện thao tác đúng $N - 1$ lần, hãy in ra No trên một dòng.

Nếu có thể, hãy in ra Yes trên dòng đầu tiên, theo sau là dãy các cạnh trên dòng thứ hai theo định dạng sau:

$$ e_1 \ e_2 \ \ldots \ e_{N-1} $$

Ở đây, $e_k$ ($1 \le e_k \le N - 1$) biểu thị chỉ số của cạnh được chọn ở thao tác thứ $k$. Nếu có nhiều dãy hợp lệ, bạn có thể in ra bất kỳ dãy nào trong số đó.

Ví dụ

Dữ liệu vào 1

3
5
1 2
2 3
2 4
2 5
1 1 1 0 0
2
1 2
0 0
9
1 2
2 3
2 4
4 5
4 6
6 7
6 8
6 9
0 0 1 0 1 1 0 1 1

Dữ liệu ra 1

Yes
3 2 4 1
No
Yes
6 7 4 2 1 3 5 8

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.