Editorial for Secuencia numerada de lápices
Submitting an official solution before solving the problem yourself is a bannable offence.
Authors:
,Digamos que es la cantidad de secuencias que suman . Cualquier secuencia válida, debe empezar por 1 o 2.
- En el caso de que empiece por , los restantes números deben sumar .
- En el caso de que empiece por , los restantes números deben sumar .
Entonces, podemos formular la siguiente recurrencia:
Para el 40 % de los casos de prueba, es suficiente implementar una solución en complejidad , pero para obtener todos los puntos se necesita algo sublineal. En particular, buscaremos una solución con complejidad temporal .
Potenciación de matrices
Se puede usar de manera estándar la técnica de potenciación de matrices. Visitar este link para aprender sobre potenciación de matricesOtra solución
Observemos la recurrencia. Digamos que los valores iniciales son respectivamente. Entonces, la secuencia luce así:
Notemos que los coeficientes de y en cada término de la recurrencia son los números de fibonacci. Podemos hipotizar que el -ésimo de una recurrencia con la ecuación dada, y con y es . Más formalmente dicho, . Esto se puede demostrar fácilmente por inducción, o también a partir de potenciación de matrices.
Es obvio que en nuestro caso, la recurrencia es simplemente la secuencia de fibonacci omitiendo el 0.
Basados en dicha entidad, podemos concluir que:
Podemos usarlas parar computar en tiempo . Podemos tener una función solve(n)
que retorne el valor de y , usando las fórmulas mostradas previamente.
Comments