Given DAG G(V,E), and weight on the vertices, find the heaviest path that starts from s
Try to transform the graph as following. Assign weight 0 to each edge and then "split" each vertex into two vertices by connecting them by an edge with the weight equal to the vertex's weight. 

  ====&gt;(12)====&gt;   turns into  =====&gt;(v)--12--&gt;(u)====&gt;


The find the longest path in $O(|V| + |E|)$. Please look here.