Древняя задачка
Если кто помнит, в конце 90х была игра "Братья пилоты" или как-то так называлась. Там на одном из уровней предлагалась такая головоломка для
Тогда для четных (да и вообще для любого прямоугольника, у которого обе стороны четные) простой алгоритм придумался, типа жмякнуть на любую жмякалку из тех, что число неправильно стоящих на одном кресте с ней нечетно
-- Чт июл 13, 2017 08:37:26 --Я сначала в игре "Следствие ведут колобки" тоже не мог очень долго открыть долбаный холодильник.
А потом я выучил линал
Я без линала ее решал. Краткий ход мыслей был такой:
1. Операция очевидно коммутативна и имеет порядок 2. Следовательно, в случае возможности решить, существет решения, жмякающее на каждую жмякалку не более одного раза
2. Подумаем можно ли и если можно, то как перевернуть ровно одну жмякалку. (как выше сказано со жмяканием на каждую не более раза, то есть выделить множество жмякалок, на которые жмякнуть) По сути все жмякалки разбиваются на 3 подмножества таких, что если две из них из одного подмножества, то они равноправны. при этом каждое жмякание изменяет четность неправильных жмякалок, то есть вариантов даже не 8, а 4. Подобрал.
3. Отсюда первый алгоритм понятен - выпишем все такие, у которых число неправильных в одном кресте с ней нечетно. после выписывания жмякаем ан них
4. Потом задался вопросом - а нужно ли их выписывать? И нашел инвариантик. Все. Пришел на след день на работу все сразу решилось.