graph_theory, tarjan, dp