Is the terminology of the word optimal substructure same for divide-conquer and dynamic programming technique?
The CLRS definition of optimal substructure: 


  A problem exhibits optimal substructure if any optimal solution to the
  problem contains within it optimal solutions to subproblems.


This make sense for both methods.

Divide&amp;Conquer is used when subproblems are independent, there is no overlapping subproblems. In this case you just combine solutions to resolve the main problem.

Dynamic Programming is used when subproblems are dependent, there are overlapping subproblems and results are typically stored in some data structure for later reuse.