KonanMentor's blog

By KonanMentor, 9 years ago, In Russian

Помогите, пожалуйста, решить задачу "Женитьба" с X Жаутыковской олимпиады. Условие

Я нашел разбор этой олимпиады, но я его не понимаю :(

В разборе написано, что алгоритм Куна работает за (разве не за ?)

Если закрыть на это глаза, то я понимаю оценку : перебираем отрезки за и поверяем за Куном.

Но как получить из я не понимаю. Если применить идею, что если какой-то отрезок подходит, то подойдут все отрезки, содержащие его, то мы получим оценку .

Что происходит в последней части разбора я вообще не понял.

Теперь о том, как делал я.

Запустим плавающее окно. Проверять будем с помощью Диница, который должен находить паросочетание быстрее Куна ( против ). Но мы не будем каждый раз строить граф и находить паросочетание заново. При сдвиге правой границы добавим ребра в граф, а при сдвиге левой удалим ребра из графа, при этом откатим поток, который проходил по этим ребрам (наверное, что-то похожее имелось в виду в последней части разбора).

За сколько эта ерунда будет работать, я понятия не имею, но берет 62/100.

Как решить эту задачу? Имеет ли смысл использовать здесь Диница вместо Куна?

  • Vote: I like it
  • +8
  • Vote: I do not like it