Request for examples to show various types of subproblems in dynamic programming
Everything you need could be found on Topcoder.com (TCC for short).
Start with Dumitru's tutorial.
Done that, you should be able to integrate the DP technique on various structures, like 2D grids, narrow ribbons, convex polygons, etc. to name just a few.
An archive of DP problem on TCC: https://www.topcoder.com/tc?module=ProblemArchive&amp;sc=2&amp;sd=desc&amp;cat=Dynamic+Programming
And the match editorial is the best collection: https://community.topcoder.com/tc?module=Static&amp;d1=match_editorials&amp;d2=archive
I have learnt so much from these. Unfortunately, this editorial series stopped since 2008. From that time on, the SRMs are only discussed in the forum like these more recent SRMs:
https://www.topcoder.com/blog/single-round-match-735-editorials/
A tagged search produces this: https://www.topcoder.com/blog/tag/srm-editorials/
So you may easily access all the recent SRMs.
SRM: Single Round Match (TCC is the arena of online competitive programming)

Please note that TCC has been gone through various reconstruction (since the integration with Data Science market). As a (unwanted) consequence, many links are broken but can be fixed by modifying some middle parts (as often the cases for decades-old websites)