这段时间刷dp,总结出了一个不算套路的套路。
1.根据题意确定是否有重叠子问题,也就是前面的状态对后面的有影响,基本满足这个条件的就可以考虑用dp了。
2.确定是dp后,就是最难的部分——如何根据题意选定正确的状态,比如dp[i][j]表示前i个物品价格为j的所有可能。(这个需要刷题积累经验,暂时还没归纳出什么东西。
3.解决边界问题,比如二维数组dp[i][j],确定dp[0][j]和dp[i][0]的取值。
4.根据确定的边界,向后推几步,推出转移方程。
这段时间刷dp,总结出了一个不算套路的套路。
1.根据题意确定是否有重叠子问题,也就是前面的状态对后面的有影响,基本满足这个条件的就可以考虑用dp了。
2.确定是dp后,就是最难的部分——如何根据题意选定正确的状态,比如dp[i][j]表示前i个物品价格为j的所有可能。(这个需要刷题积累经验,暂时还没归纳出什么东西。
3.解决边界问题,比如二维数组dp[i][j],确定dp[0][j]和dp[i][0]的取值。
4.根据确定的边界,向后推几步,推出转移方程。
转载于:https://www.cnblogs.com/zmin/p/9333048.html