При этом, для быстрого удаления ребра, нужно для каждой пары хранить количество путей их связывающих.
А как это хранение при удалении ребра обновлять быстрее, чем обновлять транзитивное замыкание?
Обозначим ребро от вершины a до вершины b как (ab), множество вершин, из которых достижима вершина a через U(a), множество вершин которые достижимы из вершины b как D(b). Сами вершины тоже входят в соответствующие мн-ва. Элементы соответствующих мн-в обозначаем буквой в нижнем регистре (например,

). Кол-во путей от c к d обозначим

(

). Тогда, добавление ребра (ab) приводит к следующим изменениям кол-ва путей:

. Остальные "счётчики" остаются неизменными. Удаление ребра приводит к обратному изменению "счётчиков". При этом,

, очевидно, эквивалентно отсутствию путей, и такие пары можно просто не хранить/удалять.
-- 03.01.2015, 01:28 --Есть две идеи, которые я пока не знаю как (можно ли) развить.
1. Рёбра, входящие в вершину b можно интепретировать как операцию объединения:

. Тогда, пометка пары вершин (cb) будет означать

2. Считать, что рёбра имеют цвет и пометка пары вершин означает, например, добавление чёрного ребра. Соответсвенно, как-то вести учёт моно/полихромных путей.