Comments 4
Доминошки в первой задаче должны располагаться в какой-то обязательной последовательности относительно друг друга, или это просто юнит 2х1?
Задача из примера 5 решается динамикой по профилю, если кому-то еще актуально:
Аналогично решается задача «замостить доминошками поле N*M», только там все допустимые переходы нужно уже генерировать, а не просчитывать вручную как сделал я. Описание есть здесь
void solve( )
{
int N = 0;
while (true) {
cin >> N;
if (N == -1) return;
ll a[32][8];
for (int i = 0; i < 8; ++i) a[0][i] = 0;
a[0][0b00000111] = 1;
for (int i = 1; i <= N+1; ++i) {
a[i][0b00000001] = a[i-1][0b00000110];
a[i][0b00000011] = a[i-1][0b00000100] + a[i-1][0b00000111];
a[i][0b00000100] = a[i-1][0b00000011];
a[i][0b00000110] = a[i-1][0b00000001] + a[i-1][0b00000111];
a[i][0b00000111] = a[i-1][0b00000011] + a[i-1][0b00000110];
if (i >= 2)
a[i][7] += a[i-2][7];
}
if (N%2==0)
cout << a[N][7] << endl;
else
cout << 0 << endl;
}
}
Аналогично решается задача «замостить доминошками поле N*M», только там все допустимые переходы нужно уже генерировать, а не просчитывать вручную как сделал я. Описание есть здесь
Когда на собеседовании начинают задавать задачи на логику, теорию вероятности и прочее, особенно когда не дают время спокойно подумать, хочется встать и уйти. Глупости это, не имеющие никакого отношения к уровню профессионализма разработчика.
Как сказал один мой товарищ, умение решать ребусы говорит только о том, что человек умеет решать ребусы.
Как сказал один мой товарищ, умение решать ребусы говорит только о том, что человек умеет решать ребусы.
Sign up to leave a comment.
Задачи с доминошками на собеседованиях