Нужно чуть больше данных — как устроена сеть дорог/граф? Без этого можно дать только общий принцип и несколько типичных случаев.
Общий принцип
Если количество способов добраться из a в b равно Na→ba→ba→b, а из b в c равно Nb→cb→cb→c, и маршруты a→b и b→c можно комбинировать произвольно т.е.нетдополнительныхограниченийиповторы/возвратынезапрещеныт. е. нет дополнительных ограничений и повторы/возвраты не запрещеныт.е.нетдополнительныхограниченийиповторы/возвратынезапрещены, то число способов из a в c через b равно Na→ba→ba→b · Nb→cb→cb→c.
Частые конкретные случаи 1) Произвольный ориентированный/неориентированный граф с конечным числом простых путей: посчитайте количество путей из a в b и из b в c обычнорекурсией,DFS/DPилиматрицейсмежностиобычно рекурсией, DFS/DP или матрицей смежностиобычнорекурсией,DFS/DPилиматрицейсмежности, затем перемножьте как выше.
2) Прямолинейная решётка ходытольковправоивверхходы только вправо и вверхходытольковправоивверх. Пусть a=0,00,00,0, b=p,qp,qp,q, c=m,nm,nm,n с 0≤p≤m, 0≤q≤n. Тогда Na→ba→ba→b=Cp+q,pp+q,pp+q,p, Nb→cb→cb→c=C(m−p)+(n−q),m−p(m−p)+(n−q), m−p(m−p)+(n−q),m−p, и ответ = Cp+q,pp+q,pp+q,p·Cm−p+n−q,m−pm−p+n−q, m−pm−p+n−q,m−p.
3) Если запрещены повторные посещения вершин или есть дополнительные ограничения, формула может не выполняться и нужен поиск всех путей в графе DFS/Backtracking,либоподсчётпростыхпутейDFS/Backtracking, либо подсчёт простых путейDFS/Backtracking,либоподсчётпростыхпутей.
Если пришлёте схему/матрицу смежности/размеры решётки или уточните ограничения, посчитаю конкретно.
Нужно чуть больше данных — как устроена сеть дорог/граф? Без этого можно дать только общий принцип и несколько типичных случаев.
Общий принцип
Если количество способов добраться из a в b равно Na→ba→ba→b, а из b в c равно Nb→cb→cb→c, и маршруты a→b и b→c можно комбинировать произвольно т.е.нетдополнительныхограниченийиповторы/возвратынезапрещеныт. е. нет дополнительных ограничений и повторы/возвраты не запрещеныт.е.нетдополнительныхограниченийиповторы/возвратынезапрещены, то число способов из a в c через b равноNa→ba→ba→b · Nb→cb→cb→c.
Частые конкретные случаи
1) Произвольный ориентированный/неориентированный граф с конечным числом простых путей: посчитайте количество путей из a в b и из b в c обычнорекурсией,DFS/DPилиматрицейсмежностиобычно рекурсией, DFS/DP или матрицей смежностиобычнорекурсией,DFS/DPилиматрицейсмежности, затем перемножьте как выше.
2) Прямолинейная решётка ходытольковправоивверхходы только вправо и вверхходытольковправоивверх. Пусть a=0,00,00,0, b=p,qp,qp,q, c=m,nm,nm,n с 0≤p≤m, 0≤q≤n. Тогда
Na→ba→ba→b=Cp+q,pp+q,pp+q,p, Nb→cb→cb→c=C(m−p)+(n−q),m−p(m−p)+(n−q), m−p(m−p)+(n−q),m−p,
и ответ = Cp+q,pp+q,pp+q,p·Cm−p+n−q,m−pm−p+n−q, m−pm−p+n−q,m−p.
3) Если запрещены повторные посещения вершин или есть дополнительные ограничения, формула может не выполняться и нужен поиск всех путей в графе DFS/Backtracking,либоподсчётпростыхпутейDFS/Backtracking, либо подсчёт простых путейDFS/Backtracking,либоподсчётпростыхпутей.
Если пришлёте схему/матрицу смежности/размеры решётки или уточните ограничения, посчитаю конкретно.