Содержание
- 2. Основная идея Если можно передавать сообщение напрямую, то это выгоднее, чем в обход Таким образом, необходимо
- 3. Решение за O(n^3) Перебрать через кого в Дубае, Москве и Калининграде передается сообщение и посчитать стоимость
- 4. Построение графа Вершины – люди Ребра – стоимость передачи сообщения напрямую от одного человека к другому
- 5. Поиск кратчайшего пути Алгоритм Флойда за O(n^3) – 40 баллов Алгоритм Дейкстры за O(n^2) – 60
- 6. Динамическое программирование (ДП) Для каждого человека считать минимальную стоимость передачи сообщения этому человеку Считать последовательно для
- 7. ДП за O(n^2) Для каждого человека перебирать кто из предыдущего часового пояса передает ему сообщение Стоимость
- 8. Улучшение ДП за O(n^2) Когда n - большое Для каждого часового пояса оставлять некоторое количество самых
- 9. ДП за O(n log n) Все номера в каждой зоне – отсортированы Для каждой длины совпадающего
- 10. ДП за O(n) Все номера в каждом поясе – отсортированы Идея «двух указателей» и два прохода
- 11. ДП за O(n) При перемещении указателя в предыдущем поясе эти значения пересчитываются Для человека в текущем
- 12. Meet-in-the-middle Считать для каждого человека из Москвы минимальную стоимость передачи сообщения ему из Ханты-Мансийска и от
- 13. «Жадные» решения Каждый раз выбирать ближайший номер в следующем часовом поясе 24 балла
- 15. Скачать презентацию