Editorial for El Conejo Saltarín
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Subtarea 1
En esta subtarea, , por lo que siempre es posible ir de a cualquier en 1 salto. Por tanto, la respuesta para una pregunta es .
Subtarea 2
- , para alguna constassnte .
La idea es similar. En esta subtarea, .
Entonces, si queremos ir de a en un salto, se tiene que cumplir que
. Por tanto, podemos dar saltos de longitud .
Entonces, la respuesta para una pregunta es .
Subtarea 3
- .
Podemos resolver cada pregunta en tiempo lineal. Podemos usar dos punteros para dar los saltos óptimos, manteniendo para cada , el mayor tal que .
Complejidad temporal: .
Subtarea 4
Notemos que , por lo que . Eso quiere decir que la cantidad mínima de pasos para ir desde cualquier punto a otro es menor que o igual a 20. Por tanto, podemos usar la solución de la subtarea anterior.
Subtarea 5
Digamos que es el mayor tal que . Si no existe tal , digamos que .
se puede computar en tiempo lineal usando dos punteros, de derecha a izquierda.
Podemos considerar esto como un grafo dirigido, donde cada nodo tiene grado de salida 1. De hecho, si consideramos los como raíces, este grafo es realmente un bosque con las aristas orientadas desde las hojas hacia la raíz.
Podemos usar la técnica binary lifting, que consiste en mantener para cada nodo, la lista de ancestros a distancia .
Si tenemos una pregunta , usando esta lista de ancestros, podemos vorazmente buscar el primer ancestro de que sea mayor o igual que , y la respuesta sería la diferencia entre las profundidades de y el ancestro encontrado en el grafo.
Comments