Форд-Беллман, Флойд (18 ноября 2016)
- Форд-Беллман. Тестируем на случайном графе.
- Код, написанный в этом году: [code]
- Прошлогодний: [code] [code] [code]
- Стандартная реализация за Θ(VE), V = 105, E = 2 × 105
- Реализация с break − 22 итерации
- Реализация с очередью − в среднем меньше 2 итераций
- Задачи
- Нужно научиться на запрос "уменьшился вес ребра" за O(n2) пересчитывать матрицу расстояний.
- Проверить после этого, что нет отрицательных циклов
- Есть n валют и m обменников. i-й обменник предлагает менять валюту ai на валюту bi (орребро) по курсу ci/di. Можно ли, используя сколь угодно большие начальные сбережения и данные m обменников, сломать финансовую систему и бесконечно обогащаться? Считается, что у обменников есть бесконечное количество денег целевой валюты. O(nm).
- Upgrade: изначальные сбережения в рублях, в конце деньги тоже должны остаться в рублях.
- Есть ограф. Нужно найти количество необязательно простых путей из a в b
- Длины ровно k, здесь k ≤ 109.
- Длины не более k, здесь k ≤ 109.
- Длины от l до r, здесь l ≤ r ≤ 109.
- Цикл минимального среднего веса за O(VElogM)
- Цикл нулевого веса.
- Река (полоса). N точек-препятствий. Круг какого максимального радиуса можно провести по реке, не задевая препятствия.
- Доп задачи
- Даны 2N точек на плоскости, разбить их на пары, чтобы отрезки не пересекались