Editorial for Piedras


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

Como cada jugador siempre hará lo óptimo, el ganador del juego para una cantidad de piedras x es fijo, así que podemos calcularlo de la siguiente forma, denotemos dp_x como 1 si el primer jugador puede ganar si una pila compienza con x piedras, 0 de lo contrario, esto se puede calcular de la siguiente forma, iterando ascendentemente por x, de 1 a n:

  • Si para un x, se puede hacer un movimiento que deje con una cantidad de piedras que el primero no gane, entonces dp_x = 1, o sea si hay algún i tal que dp_{x-A_i} = 0, entonces dp_x = 1.
  • De lo contrario cualquier cosa que se haga dejará al primer jugador como perdedor así que dp_x = 0.

Esto se puede implementar intuitivamente en O(n \cdot k)


Comments

There are no comments at the moment.