Editorial for Ciclo más corto


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Author: humbertoyusta

Lo más importante en esta tarea es notar que si cualquier bit contiene al menos 3 números, entonces formarán un ciclo de longitud 3, y la respuesta es 3.

Supongamos ahora que cada bit no tiene más de dos números. De ello se deduce que cada bit puede ser compartido como máximo por un par de números. De aquí obtenemos que en el grafo no hay más de 60 aristas. Luego, en él puedes encontrar el ciclo más corto en ? (?^2): para cada arista entre los vértices ? y v intentaremos eliminarla y encontrar la distancia más corta entre los vértices u y v en el gráfico resultante. Si todas las veces u y v resultaron estar en componentes diferentes, entonces no hay ciclo en el grafo; de lo contrario, su longitud es :

1 + la mínima de las distancias encontradas.

Complejidad ? (? \log{10^{18}} + 60^2).

Si no se realizo la primera observación, se puede realizar el mismo algoritmo al grafo original y la complejidad seria O(n^4) lo cual es suficiente para la primera subtarea.


Comments

There are no comments at the moment.