Use DP on DAGs when:
The graph is a DAG (explicitly or implicitly)
you are optimizing or counting over paths
Each subproblem depends only on earlier subproblems Examples: shortest path, longest path, counting paths, maximum weight path, minimum cost path. If the graph has cycles, you need a different approach. If the problem asks for connectivity or reachability, DFS/BFS might be better.