Нелепости

Sep 11, 2015 11:51

Ездить в такси без носков.
Кушать суши, не чувствуя запаха.
Решать задачу из мультика несколько дней.
Как обычно )

перестановки, теорема Футурамы

Leave a comment

Comments 5

ext_1301353 September 11 2015, 22:41:06 UTC
Я, вроде бы, умею решать частный случай, когда разрешенные пары образуют лес (за линию).

Reply

major_m September 12 2015, 09:35:27 UTC
Интересно, а как ты этот случай решаешь?

Я подумал немного над ним. Можно сделать так. Возьмем произвольный лист, пусть там хочет оказаться значение x. Если x уже на своем месте, то просто забудем про этот лист. Если нет, но x лежит в соседе листа, делаем своп. Если x где-то далеко, то на лист забиваем и ставим звонок вспомнить про него, когда x окажется в соседе. Надо только подумать, почему это не зависнет, когда решение существует...

Reply

ext_1301353 September 12 2015, 18:51:03 UTC
Подвесим дерево и рассмотрим какое-нибудь поддерево.
Есть три случая:
1) из поддерева ничего не "торчит". Тогда отрезаем его и решаем независимо
2) ровно один элемент должен уйти наверх, и ровно один должен прийти на его место. В этом случае решаем подзадачу, предположив что такой обмен можно сделать в момент когда лишний элемент находится в корне поддерева.
3) в остальных случаях, ответ отрицательный, потому что у нас максимум один своп с этим поддеревом

Теперь осталось понять, можно ли разрулить поддеревья заданной вершины. это можно сделать симуляцией, заменив каждое поддерево 2го типа на одну вершину, с соответствующим "лишним" элементом

Reply


sorphy_san September 22 2015, 12:48:48 UTC
Неожиданно оказаться в такси и без носков.

Reply


krevetka_flo October 10 2015, 12:50:09 UTC
С опозданием поздравляю… Съем-ка за Вас черешенку размороженную)

Reply


Leave a comment

Up