Esta es una pregunta de una competencia de programación (que ha finalizado). Estaba luchando para resolver este problema, pero no pude encontrar un método saludable para hacerlo.Cambie las casillas en movimientos mínimos
La pregunta es la siguiente:
IIIT Allahabad celebra su anual Fiesta Tecno-Cultural de la efervescencia MM12 del 1 al 5 de octubre. El chef acordó proveer dulces para esta temporada festiva. El chef ha preparado N cajas de dulces, numeradas del 1 al N (cada número se produce exactamente una vez). El chef es muy particular acerca de la disposición de las cajas. Él quiere que las cajas se arreglen en un orden particular, pero desafortunadamente el Chef está ocupado. Te ha pedido que arregles las cajas para él. Dado el orden actual de las casillas, debe reorganizar las casillas en el orden especificado. Sin embargo, hay una restricción. Solo puede cambiar dos cuadros adyacentes para lograr el pedido requerido. Salida, el número mínimo de tales permutas adyacentes requeridas.
entrada
primera línea de entrada contiene un único entero T, el número de casos de prueba. Cada caso de prueba contiene 3 líneas, la primera línea contiene un número entero N, número de casillas. Las siguientes 2 líneas contienen N números cada una, la primera fila es el orden dado de las casillas, mientras que la segunda fila es el orden requerido.
salida
Para cada caso de prueba, la salida de un número entero single 'K', número mínimo de permutas adyacentes requeridos. Restricciones:
1<=T<=10
1<=N<=10^5
Ejemplo
de entrada:
4
3
1 2 3
3 1 2
3
1 2 3
3 2 1
5
3 4 5 2 1
4 1 5 2 3
4
1 2 3 4
2 3 4 1
Salida:
2
3
6
3
estaba casi ni idea acerca de esta cuestión. ¿Alguien puede explicar la lógica detrás de la pregunta?
Este problema se puede reducir para encontrar el número de pasos en un algoritmo de ordenación de burbujas. – nhahtdh
Es un problema de inversión de conteo, que se puede hacer en O (n log n) con clasificación de combinación modificada: http://stackoverflow.com/questions/337664/counting-inversions-in-an-array o puede usar Fenwick Tree (ya que está contando el número de pares (i, j) donde i A [j] y afortunadamente el rango de los números puede limitarse a 10^5). –
nhahtdh
¿Ha comprobado el enlace de arriba, tiene la solución al problema en O (n log n)? – nhahtdh