Прочитал… А в чем PROFIT то от решения этой задачи?
>>>> В жизни мы встречаемся именно с этим типом игр
Если все-таки встречаемся, то при каких обстоятельствах. Я вот что-то ничего не могу придумать из жизни.
разбиения III полностью совпадают с разбиениями IV, поэтому мы ограничились только рассмотрением III. Вы можете расписать все эти разбиения и убедиться.
А почему не рассмотрены случаи, когда тримино ставится «сбоку», так что остаётся один «кусок»?
например:
для I получается только II
для II получается только I
для III получается только II
для IV получается только II
И я не совсем понимаю, что происходит в коде:
каждая функция I* она возвращает что? mex nim(все возможные разбиения)?
почему тогда, возвращается первый индекс mex'а, который не был проставлен (я так понимаю mex должен инициализироваться false, иначе нет смысла :) )?
объясните, интересно.
Гораздо проще рассматривать это как два кусочка, где один из них нулевой, тогда не нарушается общность. Ф-ия возвращает mex, mex это minimal exclusive — первый элемент, который не входит в множество. java всегда инициализирует falsом созданный массив.
на М+1 исправил
Тримино