Selección de "examen" 76


Podemos considerar el proceso inverso del árbol de corte mínimo para T1 .
Luego, el árbol de corte mínimo se restaura de acuerdo con el corte mínimo.
Cada vez que se encuentra el corte más pequeño en el conjunto actual.
Luego use y verifique si el corte del enlace es mayor que el corte mínimo.
De esta manera, se pueden dividir dos conjuntos.
Determine recursivamente si hay una solución.

T2
considera hacer un árbol \ (dp \) .
Proporcionada:
\ (F [X] [I] \) de \ (X \) subárbol transcurrido \ (I \) un diámetro de los puntos finales es \ (X \) coste mínimo.
\ (g [x] [i] \) es la suma mínima de peso de borde de \ (i \) puntos en el subárbol de \ (x \) . \ (H [x] [i ] \) de \ (X \) subárbol transcurrido \ (I \) cualquier mirar diámetros promedio de puntos no es \ (X \) coste mínimo. Este es un \ (O (n ^ 2) \) un \ (DP \) a. Las seis transferencias no se repiten aquí.


T3
directamente \ (hash \) servirá.
No hay nada que decir
\ (hash \) tiene algunos trucos.
Si se trata de una unión bidireccional, el mantenimiento bidireccional se inicia desde cero. Las lecturas positivas y negativas se pueden usar directamente en \ (p, p ^ {-1} \) para dos casos.
En este caso, solo necesita multiplicar \ (p ^ {len} \) para restaurar el valor \ (hash \) , pero el mantenimiento puede mantenerse y calcularse con \ (O (1) \) .

Supongo que te gusta

Origin www.cnblogs.com/Lrefrain/p/12748066.html
Recomendado
Clasificación