Simulación provincial 76

UNA

Tema: Para dar un corte mínimo por pares, construya un gráfico. n <= 100 El
corte mínimo se puede convertir al peso mínimo de la ruta en el árbol de corte mínimo, por lo que se puede construir el árbol de corte mínimo. Los
pesos de los bordes se ordenan de grande a pequeño, se construye el árbol de expansión y finalmente la verificación es válida.
Prueba:
cada vez que se une es el mínimo actual. Si está conectado, el reemplazo definitivamente hará que el par de puntos reemplazado sea ilegal. Si no está conectado, es obvio que el borde más pequeño entre los dos bloques conectados no se une para cumplir con el par de puntos actual.

si

Significado de la pregunta:
n <= 3000
Para k = n, peso y diámetro de 2 bordes En
general, suponiendo que se conozcan k puntos, la respuesta es 2 peso virtual del borde del árbol y -diámetro del árbol virtual,
y luego se deben
establecer k puntos adyacentes [i] [j] [0/1/2] significa que se seleccionan j puntos dentro del subárbol i y el punto final del diámetro determina la solución óptima de 0/1/2
para que pueda saber que el borde de uv ha ido 1 al transferir / 2 veces
transferencia de fusión de subárbol \ (O (n ^ 2) \)

C

Tema: Operaciones de cadena S, Q: agregar caracteres antes / después, deshacer la operación de agregar caracteres. Encuentre la suma de la longitud de cadena de palíndromo más larga en S después de cada operación. Fuerza en línea. n <= 1e7
descubrió que el incremento de la respuesta solo será 0/1/2, puede usar el hash para verificar directamente el prefijo y el sufijo.
Considere mantener el hash:
similar al puntero de mantenimiento del equipo Mo escrito, la constante es grande y abandonada. . .
Otro enfoque es encontrar h [i] -> h [i + 1] de manera similar a h [i + 1] -> h [i]. Por supuesto, h [i] no contiene la verdadera s [i + 1 ], Pero hemos acordado, probablemente equivalente a la desalineación?
Bastante fascinante pero correcto.

Supongo que te gusta

Origin www.cnblogs.com/hzoi-yzh/p/12748217.html
Recomendado
Clasificación