Tiene algunos ladrillos de plástico LEGO, todos los ladrillos son 1x1x1. También tiene una ficha, 1xN (N < = 80), en la que debe colocar los ladrillos LEGO. Puedes ordenarlos en secuencias (una secuencia es correcta si tiene 3 o más ladrillos consecutivos), también debes tener al menos 1 espacio vacío entre 2 secuencias. Debe calcular la cantidad de combinaciones diferentes en las que puede colocar los ladrillos en los mosaicos.Número de combinaciones con ladrillos de plástico LEGO C++
He aquí un ejemplo:
Si la baldosa es 1x7, hay 17 combinaciones diferentes.
de entrada: 7 de salida: 17
pic of the example http://mendo.mk/task_files/kocki.gif
Además, si usted no tiene ladrillos se cuenta como 1 combinación.
He trabajado en este problema y encontré la manera de calcular las posibles combinaciones de si la longitud máxima de la losa es de 14 (3 secuencias). Lo encontré usando bucles.
Mi mayor problema es la gran cantidad de bucles for que necesito para ejecutar. Por ejemplo, para 1 secuencia, uso 1 para bucles, para 2 secuencias 2 bucles + 1 para 1 secuencia ... así que si uso los 80 ladrillos, puedo crear 20 secuencias y tendré que usar más de 210 para bucles, lo cual es numero enorme. Entonces será bueno si puedo anidarlos en uno. Lo intenté y se volvió complicado y no da respuestas correctas.
Nuevo código:
#include <iostream>
using namespace std;
int main()
{
long long int places, combinations = 1;
cin >> places;
long long int f[80], g[80];
f[0] = 0;
f[1] = 0;
f[2] = 0;
g[0] = 1;
g[1] = 1;
g[2] = 1;
for(int i = 3; i<=places; i++)
{
f[i] = f[i-1] + g[i-3];
g[i] = f[i-1] + g[i-1];
}
combinations = f[places] + g[places];
cout << combinations;
return 0;
}
puedes usar la clase por bruja, solo necesitas hacer esto una sola vez y luego usar la clase una y otra vez –
No sé cómo me ayudará, también no tengo experiencia con la clase, así que por favor publica un pequeño ejemplo. si no notó que el algoritmo para 1 secuencia es diferente al de 2 y así en – Stefan4024
¿puede explicar esto? 'también debes tener al menos 1 espacio vacío entre 2 secuencias'. Su ejemplo no es coherente con esta declaración – Abhijit