Editorial for Este es el problema facil
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Este es el mas difícil de la prueba. Nunca le crean a un problema cuando diga esto.
Subtarea 1:
Hacer O(N*Q): por cada pregunta pasar por el array y el resto es trivial.
Subtarea 2:
Idea :
: Separar los elementos en intervalos de tamaño
, ordenar estos intervalos, y pasar por ellos haciendo búsqueda binaria.
Idea 2-O(Q*(log(N)^3)): Tener un Segement Tree(ST) de vectores, tal que cada nodo contenga los elementos del intervalo ordenados y luego hacer búsqueda binaria sobre la respuesta haciendo queries en ese
.
Idea :
: Tener un ABI de vectores, tal que cada posición contenga los elementos del intervalo(que esa posición agrupa) ordenados y luego hacer búsqueda binaria sobre la respuesta haciendo queries en ese ABI.
Subtarea 3:
Idea
: Separar los elementos en intervalos de tamaño
, normalizar los valores (compresión de coordenadas), y para cada intervalo, de tamaño
, sacar un array de tamaño
(mayor valor de una variable luego de normalizarla) que nos diría cuantos valores hay menores o iguales que
o
, y solo resta pasar por ellos.
Idea
: Basado en la Idea 2 de a subtarea anterior. Hacer Fractional Cascading. Tener en cada nodo del ST otros 4 arrays que nos dicen en el hijo izquierdo y derecho la primera posición de un elemento mayor o igual y la primera posición de un elemento mayor, entonces solo hay que hacer búsqueda binaria una vez(en el nodo
) y entonces cada querie sale en
.
Idea
:Basado en la Idea 2 de a subtarea anterior. Hacer Búsqueda Binaria Implícita. Irse moviendo por el ST inteligentemente de tal forma que nos vayamos en cierta forma acercando a la respuesta, pedir ayuda si no es suficiente (la explicación esta larga).
Idea
: Basado en la Idea 2 de la subtarea anterior. Hacer Búsqueda Binaria Implícita. Hacer Fractional Cascading.
Idea 5-O(Qlog(n)^2): Basado en la Idea 3 de la subtarea anterior. Hacer la búsqueda binaria que les ensene(a los y
), de esta forma
búsquedas binarias en el ABI en total en cada querie. Esta era la solución esperada, por ser la mas sencilla de programar, incluso las demás ~O(Qlog(N)^2)~ deben ser mas lentas.
Comments