Практический минимум. Разбор.

  1. "A", "Малыш и Карлсон", "karlsson" - Функция Гранди
  2. "B", "Две кучки", "heaps" - Динамика (двумерная)
  3. "C", "Одна кучка", "heaps2" - Динамика (одномерная)
  4. "D", "Комфортабельная рассадка", "comfort" - Простая задача на Функцию Гранди
  5. "E", "Компоненты связности", "connect" - wiki dfs
  6. "F", "Флойд", "floyd" - wiki floyd
  7. "G", "Функция", "function" - Рекурсия с запоминанием
  8. "H", "Покрытие доминошками" - Полный перебор
  9. "I", "Расстояние в графе", "bfsrev" - wiki bfs
  10. "J", "Улиточки", "snails" - Поток # т.е. нужно написать dfs)
  11. "K", "Ёжики", "hedgehog" - Перебор всех подмножеств
  12. "L", "Pairs. Паросочетание", "pairs" - Паросочетание # т.е. снова нужно написать dfs)
  13. "M", "Сумма простая", "sum0" - Частичные суммы на префиксах
  14. "N", "Сумма", "sum" - Дерево отрезков
  15. "O", "Points on the plane", "fenwick" - Двумерное дерево Фенвика
  16. "P", "Общий предок", "lca" - Двоичный подъем
  17. "Q", "Самое дешевое ребро", "minonpath" - Двоичный подъем еще раз
  18. "R", "Сравнения подстрок", "substrcmp" - Посчитать Хэш подстроки за O(1)
  19. "S", "Словарь", "dictionary" - Сложить все строки в Бор
  20. "T", "Суффиксный массив", "suffarray" - Просто запустить функцию sort
  21. "U", "Простые числа", "primes" - Решето Эратосфена
  22. "V", "LCP для суффиксного массива", "sufflcp" - Посчитать LCP (можно за O(n), можно хэшами с бинпоиском)
  23. "W", "Глобальный разрез", "stor" - Реализовать алгшоритм Штор-Вагнера (что-то очень похожее на алгоритм Дейкстры)
  24. "X", "Такси", "taxi" - Свести задачу к паросочетанию в двудольном графе
  25. "Y", "Bridges. Мосты", "bridges" - Написать dfs + 1 if
  26. "ZA", "TopSort. Топологическая сортировка", "topsort" - И вновь нужно написать dfs
  27. "ZB", "Chip Installation", "chip" - 2-SAT
  28. "ZC", "Грани планарного графа", "theuler" - Воспользоваться Теоремой Эйлера
  29. "ZD", "Гамильтонов цикл в полном графе", "fullham" - =)