QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 2048 MB

#22850. ปริศนาเลื่อนหินบนต้นไม้

Statistics

กำหนดต้นไม้ที่มี $N$ จุดยอด หมายเลข $1$ ถึง $N$ เส้นเชื่อมเส้นที่ $i$ ของต้นไม้เชื่อมจุดยอด $u_i$ และ $v_i$ เริ่มต้น สำหรับแต่ละ $i$ ($1 \le i \le N$) จุดยอด $i$ จะมีหินหนึ่งก้อนถ้า $A_i = 1$ และไม่มีหินถ้า $A_i = 0$

คุณสามารถดำเนินการต่อไปนี้ซ้ำ ๆ ได้:

  • เลือกเส้นเชื่อมที่ยังไม่เคยถูกเลือกซึ่งมีหินอยู่บนจุดปลายด้านใดด้านหนึ่งเพียงด้านเดียว แล้วเลื่อนหินก้อนนั้นไปยังจุดปลายอีกด้านหนึ่ง

จงตรวจสอบว่าคุณสามารถดำเนินการดังกล่าวได้ครบ $N - 1$ ครั้งพอดีหรือไม่ หากเป็นไปได้ ให้แสดงลำดับของเส้นเชื่อมที่ถูกเลือก

ข้อมูลนำเข้า

ข้อมูลนำเข้าประกอบด้วยกรณีทดสอบหนึ่งกรณีหรือมากกว่า บรรทัดแรกของข้อมูลนำเข้าประกอบด้วยจำนวนเต็ม $T$ ($1 \le T \le 10^5$) ซึ่งเป็นจำนวนกรณีทดสอบ รายละเอียดของกรณีทดสอบทั้ง $T$ กรณีจะตามมาในรูปแบบดังต่อไปนี้

$$ \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} $$

บรรทัดแรกประกอบด้วยจำนวนเต็ม $N$ ($2 \le N \le 2 \times 10^5$) แทนจำนวนจุดยอด

สำหรับแต่ละ $i$ ($1 \le i \le N - 1$) บรรทัดที่ $i$ จาก $N - 1$ บรรทัดถัดมาประกอบด้วยจำนวนเต็มสองจำนวนคือ $u_i$ และ $v_i$ ($1 \le u_i, v_i \le N$) คั่นด้วยช่องว่าง แทนว่าเส้นเชื่อมเส้นที่ $i$ เชื่อมจุดยอด $u_i$ และ $v_i$ รับประกันว่ากราฟที่กำหนดให้เป็นต้นไม้

บรรทัดสุดท้ายประกอบด้วยจำนวนเต็ม $N$ จำนวนคือ $A_1, A_2, \ldots, A_N$ ($A_i \in \{0, 1\}$) คั่นด้วยช่องว่าง โดย $A_i$ แทนว่าเริ่มต้นมีหินวางอยู่บนจุดยอด $i$ หรือไม่

ผลรวมของ $N$ จากทุกกรณีทดสอบรวมกันไม่เกิน $2 \times 10^5$

ข้อมูลส่งออก

สำหรับแต่ละกรณีทดสอบ ให้พิมพ์คำตอบดังต่อไปนี้

หากเป็นไปไม่ได้ที่จะดำเนินการให้ครบ $N - 1$ ครั้งพอดี ให้แสดง No ในหนึ่งบรรทัด

หากเป็นไปได้ ให้แสดง Yes ในบรรทัดแรก ตามด้วยลำดับของเส้นเชื่อมในบรรทัดที่สองในรูปแบบดังต่อไปนี้:

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

ในที่นี้ $e_k$ ($1 \le e_k \le N - 1$) แทนดัชนีของเส้นเชื่อมที่ถูกเลือกในการดำเนินการครั้งที่ $k$ หากมีลำดับที่ถูกต้องหลายแบบ คุณสามารถแสดงแบบใดก็ได้

ตัวอย่าง

ข้อมูลนำเข้า 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

ข้อมูลส่งออก 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.