No puedo resolver los problemas del juego en las competiciones de CodeChef, ¿hay algo que necesito saber que pueda ayudarme en tales problemas?

Tengo el siguiente enfoque para resolver estas preguntas.

  1. Intente resolver casos de prueba pequeños, digamos n = 2, 3, etc. en papel.
  2. Lo más probable es que exista una relación de recurrencia entre say [math] n = 3 [/ math] y [math] n = 2 [/ math]. Después de todo, todo lo que necesita hacer es resolver la ecuación de recurrencia.

Como ejemplo vamos a la pregunta codechef
Permite establecer flag = true en caso de que Jenny gane.

Ahora sabemos [matemáticas] f (1) = verdadero. [/ Matemáticas]

Del mismo modo, sabemos la respuesta para [matemáticas] N = 2, 3, 4, 5. [/ matemáticas]

Ahora consideremos una N general, sabemos

[matemáticas] F (N) =! (F (N – 1), F (N – 3), F (N – 5)) [/ matemáticas]

esto es porque tendremos que tomar el hecho
el último paso fue 1 o 3 o 5 y verifique quién es el ganador en ese caso y si el ganador es otro hombre en alguno de ellos, entonces está ganando por la fuerza. porque entonces estás negando la respuesta.
De lo contrario, otro tipo es el ganador.
Ahora, todo lo que necesita hacer es resolverlo y, mediante un golpe y una prueba, observará que

[matemáticas] F (N) = verdadero, [/ matemáticas] n% 2 == 1

[matemáticas] = falso, [/ matemáticas] n% 2 == 0

Editar: Hay algunas preguntas sobre HackerRank. Te recomendaría que los practiques.

PD -> Es un enfoque general para resolver estas preguntas, sin embargo, uno puede ver fácilmente el patrón después de un poco de práctica e incluso yo habría escrito el mismo código que escribió Aahan Bhatt sin siquiera formar una relación de recurrencia.

Como estás dando LOCs, espero que seas un estudiante de secundaria practicando desde los primeros días. De cualquier manera, no importa si eres un estudiante universitario, la práctica siempre es algo bueno.

t = int (input ())
para i en rango (0, t):
n = int (input ())
si n% 2 == 0:
imprimir (“JACK”)

más:
imprimir (“JENNY”)

Esta es la solución de CA en python. Puede tomarlo como referencia si usa otro idioma.

Buena suerte con la programación competitiva.

Estas preguntas dependen más del razonamiento inductivo. No respondería directamente al problema de junio, pero permítanme dar un ejemplo en líneas similares.

Problema:

En un juego de dos jugadores, comenzando con una pila de n monedas, los jugadores se turnan para elegir eliminar 1, 2, 3 o 4 piedras de la pila. El ganador es el jugador que toma la última piedra de la pila. Considérate como el segundo jugador. Encuentra los valores de n para los que ganas.

Solución.

Tomemos los casos simples con facilidad. Para n = 1, 2, 3 o 4, tu oponente gana de inmediato. Pero para n = 5, él / ella tiene 4 estados para ti, es decir, saca 1, 2, 3 o 4 monedas y te deja con 4,3,2 o 1 monedas respectivamente. Desde aquí puedes ganar.

Entonces llamemos n = 1,2,3,4 como posiciones ganadoras y 5 como posiciones ganadoras.
Ahora, ¿por qué los llamamos posiciones ganadoras? Porque si un jugador se queda con este estado, puede ganar. Y 5 es! Win porque todas las transiciones de este estado conducen a un estado win. Incluso si una transición conduce a una posición ganadora, entonces es una posición ganadora. Por ejemplo, es posible para nosotros pasar de (6,7,8,9) a 5 y no hay forma de pasar de 10 a 5

Por lo tanto, 6,7,8,9 son posiciones ganadoras y 10 no. La idea es dejar a tu oponente en una posición de no ganar.

Intenta generalizar y verás que si n% 5 ganas más, gana el primer jugador.

Por qué ? Porque, n = 5k donde k es un entero positivo es una posición no ganadora.

Espero que esto ayude a resolver el problema del desafío de junio.

More Interesting

¿Cómo se fabrican las máquinas que fabrican máquinas que fabrican productos?

¿Qué campos se volverán populares después de que la inteligencia artificial domine el mundo entero?

¿Cómo manipulan las computadoras la aleatoriedad?

¿Es necesario hacer proyectos en un área específica para ingresar a una buena universidad para el Máster en CS?

¿Los usuarios de Quora usarían Dice.com para encontrar un trabajo tecnológico?

¿Todos los libros principales son buenos en contenido o es mejor usar otros?

¿Cuál es la mejor provincia en Canadá para un informático, emprendedor y estudiante de doctorado?

¿Cuáles son los cinco principales usos de la computación en la nube?

¿Por qué CS51 no está disponible en edX como CS50? ¿Estará disponible?

¿Qué opinas sobre el libro 'Machine Learning Refined'?

¿Cuáles son las ventajas y desventajas de trabajar en una división de investigación frente a una división que no es de investigación en una gran empresa de software?

Me dieron una tarea de programación de desarrollo de software durante una semana. Se supone que debo terminarlo el próximo lunes, pero esta semana desperdicié mis días laborables de lunes a viernes. ¿Qué debo hacer?

¿Se puede aplicar el aprendizaje automático para un entorno completamente aleatorio?

¿Hay alguna forma de convertir una aplicación existente a VR? ¿Alguien ha encontrado una aplicación de compras con el uso de la tecnología VR?

¿Qué causó el 'invierno AI' y cuáles fueron las primeras señales de advertencia? Dado el estado actual de la IA, ¿es probable que haya otro período de bajo interés en el campo? ¿Qué cuellos de botella serían la causa de eso?