spoj question http://www.spoj.com/problems/ADASALES/
how to solve this problem.
It can be done using in-out dp .
You can see Rachit Jain’s video tutorial,he has explained in-out dp concept nicely.
1 Like
can you please give the code.
Let A be array given in question.
For calculating in[] value: root tree at node 0.
if (A[child]-A[par]>0) then we can maximize in[par]=max(in[par],in[child]+(A[child]-A[par]))
This is in order to increase profit by using this edge.
For calculating out[] value:
we will find mx1,mx2 for every node which will have the value of in[child]+ { if (A[child]-A[par]>0) A[child]-A[par]}.
Thus mx will contain value of in[child] + if edge between parent and child gains profit .
Now we can find out[] value.
My code: https://ideone.com/od5toC