Если у вас есть полное расписание автобусов для страны, как вы можете найти самый дальний человек может путешествовать за один день, не посещая одну и ту же остановку дважды?
Я предполагаю, что расписание автобусов дает вам полный список уходящих и прибывающих времен для каждой остановки автобуса.
Медленный и наивный метод будет следующим:
Вы можете, конечно, составить график из графика шины с несколькими направленными ребрами между остановками шины. Затем вы можете сделать первый поиск глубины, запоминая время прибытия края, которое вы взяли, чтобы добраться до каждого node, и только взяв края от этой остановки, которые уходят после того, что вы взяли, чтобы добраться туда. Если вы перейдете к node, к которому вы были, прежде чем вы будете продолжать оттуда, если текущее время в вашем обходе до того, как вы раньше когда-либо посещали этот node. Вы можете записать наиболее удаленное из каждого node, а затем вы можете проверить каждый node, чтобы найти, насколько вы можете путешествовать в целом.
Это кажется очень неэффективным, и это действительно не нормальная проблема графа. Проблема в том, что в нормальном направленном графе, если вы можете получить от A до B и от B до C, вы можете получить от A до C. Это не так.
Чем быстрее вы можете решить эту проблему?