Editorial for Joker
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Para cada , calculamos el número mínimo de espectadores que odiarán al espectador
para siempre (la respuesta es la suma de estos valores). Este número coincide con el costo mínimo de una ruta desde el asiento del espectador i hasta los lados del cine, considerando que pasar por un asiento vacío ha costado 0 y pasar por un asiento ocupado tiene costo 1. Sea
el costo mínimo (como se define arriba) de una ruta desde el asiento del espectador
hasta
afuera del cine despues que los primeros
espectadores han salido del cine.
Observación clave.
Los valores son decrecientes (para
pasando de
a
) y al principio se tiene que
\(H_0 (1) + H_0 (2) + ··· + H_0 (N^2) ≈ \frac{N^3}{6}\).
Nuestra estrategia es mantener todos los valores actualizados en todo momento. Inicializando
en
es
simple. Vamos a mostrar cómo actualizar
para obtener
. Cuando el
espectador
se va, realizamos una búsqueda en amplitud (o una búsqueda en profundidad) a partir del asiento de de
y
actualizando los valores. Durante la búsqueda del
-ésimo primero en amplitud, visitaremos solo los asientos
tales que
,
por lo tanto, el número total de asientos visitados en los
pasos (para
) es
(ver la observación clave).
La complejidad temporal de esta solución es
con una pequeña constante que es suficiente para ser aceptada.
Comments