QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 2048 MB

#22850. Rompecabezas deslizante en un árbol

Statistics

Se te da un árbol con $N$ vértices numerados del $1$ al $N$. La $i$-ésima arista del árbol conecta los vértices $u_i$ y $v_i$. Inicialmente, para cada $i$ ($1 \le i \le N$), el vértice $i$ contiene una piedra si $A_i = 1$ y ninguna piedra si $A_i = 0$.

Puedes realizar repetidamente la siguiente operación:

  • Seleccionar una arista aún no elegida que tenga una piedra en exactamente uno de sus extremos, y mover esa piedra al otro extremo.

Determina si puedes realizar la operación exactamente $N - 1$ veces. Si es posible, imprime el orden en el que se seleccionan las aristas.

Entrada

La entrada contiene uno o más casos de prueba. La primera línea de la entrada contiene un entero $T$ ($1 \le T \le 10^5$), que es el número de casos de prueba. A continuación siguen las descripciones de los $T$ casos de prueba, cada una con el siguiente formato.

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

La primera línea contiene un entero $N$ ($2 \le N \le 2 \times 10^5$) que representa el número de vértices.

Para cada $i$ ($1 \le i \le N - 1$), la $i$-ésima de las siguientes $N - 1$ líneas contiene dos enteros $u_i$ y $v_i$ ($1 \le u_i, v_i \le N$) separados por un espacio, que indican que la $i$-ésima arista conecta los vértices $u_i$ y $v_i$. Se garantiza que el grafo dado es un árbol.

La última línea contiene $N$ enteros $A_1, A_2, \ldots, A_N$ ($A_i \in \{0, 1\}$) separados por espacios. $A_i$ indica si inicialmente hay una piedra colocada en el vértice $i$.

La suma de $N$ en todos los casos de prueba no supera $2 \times 10^5$.

Salida

Para cada caso de prueba, imprime la respuesta de la siguiente manera.

Si es imposible realizar la operación exactamente $N - 1$ veces, imprime No en una sola línea.

Si es posible, imprime Yes en la primera línea, seguido de la secuencia de aristas en la segunda línea con el siguiente formato:

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

Aquí, $e_k$ ($1 \le e_k \le N - 1$) representa el índice de la arista seleccionada en la $k$-ésima operación. Si existen múltiples secuencias válidas, puedes imprimir cualquiera de ellas.

Ejemplos

Entrada 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

Salida 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.