Typically, divide-and-conquer divides an instance into smaller instances with no intersection whereas dynamic programming deals with problems in which smaller instances overlap. Consequently, divide-and-conquer al- gorithms do not explicitly store solutions to smaller instances and dynamic programming algorithms do.
What is a principal difference between the two techniques?