Блог пользователя abzaloid

Автор abzaloid, 11 лет назад, По-русски

Всем привет!

Скажем у нас есть какая-та задача, которая просит найти что-то мин/макс. Как можно определить(доказать) возможно ли решить эту задачу жадным способом? Либо додуматься, что по-любому придется применить что-то умное вроде динамического программирования.

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

»
11 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится

Написать и отправить. Если получил AC — значит возможно. Всегда так делал.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +22 Проголосовать: не нравится

    особенно актуально на соревнованиях, где вердикт по задаче появляется после окончания соревнования

»
11 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

Кормен, Жадные алгоритмы, Матроид.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Знать матроиды полезно — разумеется, да.

    Знание матроидов даёт универсальный или хотя бы почти универсальный критерий применИмости или неприменИмости жадности — разумеется, нет.

    Например, задача http://www.olymp.vinnica.ua/index_ua.php?lng=ru&cid=198 — очень даже жадно, но ни разу не матроидно. Можно и что-то попроще: дана совокупность отрезков на координатной прямой, найти максимальное по количеству их подмножество, чтоб никакие два отрезка выбранного подмножества не имели ни одной общей точки.