Cómo resolver 735 / C en Codeforces

¡Realmente me gusta este en Codeforces!

Piénselo de la manera inversa, es decir, suponga que el ganador terminará jugando X juegos. Entonces uno de ellos fue la final, es decir, antes de la final, jugó X – 1 juegos y noqueó a X – 1 jugadores.

Además, utilizamos una estrategia codiciosa para hacer que el subcampeón (la persona que perderá ante el ganador en la final) juegue la cantidad mínima de juegos que pueda y elimine la cantidad mínima de jugadores. Antes de la final, debe haber jugado, al menos, (X – 1) – 1 = X – 2.

Entonces, nuestra relación se convierte

f (X) = f (X – 1) + f (X – 2)

donde f (X) es el número de jugadores y X son los juegos jugados por el ganador.

Por supuesto, f (2) = 1 (el ganador solo puede jugar 1 juego) yf (3) = 2 (el ganador noquea a los otros dos jugadores).

¿Luce familiar? Es solo la secuencia de Fibonacci.

Un script rápido de Python me dice que el número 88 de Fibonacci (a partir de 1, 1) es 1100087778366101931, que es mayor que 10 ^ 18.

Entonces, solo enumere los primeros 88 números de Fibonacci y encuentre el índice de límite inferior (el número más grande que es menor o igual que) la entrada y listo, esa es su respuesta.

More Interesting

¿Qué hay de malo con este código C?

¿Las ventajas del arreglo lineal desaparecen si el arreglo es demasiado corto? ¿Por qué veo 4-6 cajas de cajas?

¿Cuál es la mejor manera de analizar un currículum en los campos de la base de datos? ¿Qué hacer si tiene muchos currículums y necesita que los datos se extraigan en elementos individuales que se pueden colocar en una base de datos?

¿Cómo se calcula el PageRank? ¿Cuál fue el PageRank inicial? ¿Cómo comienza el algoritmo?

Soy nuevo en Quora y no entiendo si las preguntas de coeficiente intelectual son una tendencia constante o si estoy atrapado en alguna forma de algoritmo infernal. Si es así, ¿cómo escapo?

¿La programación genética y los algoritmos genéticos son iguales?

Cómo resolver el problema del "número mínimo de cortes"

¿Hay disponible una implementación de Python del algoritmo de descomposición LDL ('ldl' en Matlab)?

¿Cuál es la diferencia entre una matriz de caracteres y una cadena?

¿Qué algoritmo se usa para la transmisión de video?

¿Qué es el conocimiento estructurado?

Quiero construir una casa de piedra óptima, usando una computadora para decidir la disposición de las piedras. ¿Cómo podría funcionar esto?

Cómo crear un sistema de clasificación que dependa de tres variables (nivel, resultado y tiempo) cuanto más altas sean las dos primeras, mejor, mientras que por un tiempo, un valor menor es mejor

¿Cuál es la diferencia entre trazado de rayos y fundición de rayos?

¿Qué estructura de datos usa YouTube?