Дан ориентированный граф с весом, назначенным каждому узлу.
Начиная с любого узла A, будет набор узлов, к которым можно будет добраться из A.
Определите СУММ как общий вес этого набора.
Вопрос:
Как эффективно вычислить СУММ для каждого узла в этом графе?
Граф может содержать миллионы узлов.
Обновление 1:
Структура данных графа состоит из набора начальных узлов, и каждый узел имеет набор узлов «точка-точка».
Что я пробовал:
Рекурсивно вычислить потомков каждого узла и вычислить СУММ в соответствии с набором потомков. Эта рекурсия очень неэффективна, так как мне приходится выполнять операцию объединения и изменения много раз. Далее я попытался кэшировать набор потомков на каждом узле. Однако ему легко не хватает памяти.
Итак, есть ли другое решение?
Обновление 2:
Пример графа, все ребра направлены, верхние узлы указывают на нижние узлы
Результат должен быть
СУММ (1) = 55
СУММ (2) = 35
СУММ (3) = 41
СУММ (4) = 19
СУММ (5) = 22
СУММ (6) = 25
...