Блог пользователя CleverDoner

Автор CleverDoner, 10 лет назад, По-русски

Дан ориентированный граф найдите самый длинный путь . Может ли кто нибудь скинуть решения . How we find a long path in graph. Please give me solution.

  • Проголосовать: нравится
  • -27
  • Проголосовать: не нравится

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Можно за N*(N+M), но я думаю он вам не нужен

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Топ сорт + дп.

»
10 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

Либо граф цикличен и ответ INF, либо он ацикличен и тогда по нему можно запустить динамику (взять максимум ответов детей + 1)

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Можно подробнее ?

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Уточни вопрос

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Как считать динамику? Я пытался, посмотри пожалуйста мой код сверху.

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Просто рекурсивно считать, но при этом запоминать ответ в массиве и не пересчитывать для каждой вершины ответ

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Для каждой вершины i храним dp[i], где dp[i] -> длина самого длинного пути заканчивающийся в вершине i. Можно сделать это с помощью dfs-а, потому что в нем нет циклов.