Sometimes you want dp[u] to represent paths from to a fixed destination, not from a source to . Reverse all edges in the graph and run DP in the reversed graph. If the original graph has edge , the reversed graph has edge . Compute topological order on the reversed graph, initialize dp[destination] = 1, and propagate.
Now dp[u] in the reversed graph represents paths from to the destination in the original graph. This is useful for problems like counting paths that can reach a specific node.