Not surprisingly, the Longest Path in a DAG problem can also be solved
by dynamic programming. At every vertex, there may be multiple edges
that “flow in” and multiple edges that “flow out.” In the city analogy, any
intersection may have multiple one-way streets leading in, and some other
number of one-way streets exiting. We will call the number of edges entering
a vertex (i.e., the number of inbound streets) the indegree of the vertex (i.e.,
intersection), and the number of edges leaving a vertex (i.e., the number of
outbound streets) the outdegree of the vertex.