我试图解决这个问题 - http://www.spoj.pl/problems/LISA/
我最初想到了 Greedy,但后来意识到它行不通。这似乎是一个DP问题。我无法形成递归关系。我无法形成递归关系。不只是这个问题,每当我遇到一个稍微困难的DP问题时,我都会卡住。我知道这一定很常见,实践会有所帮助。但我只是从一个问题转移到另一个问题而没有真正找到解决方案。
对于上述问题和一般情况下,DP 遇到的任何建议都会很棒。
非常感谢。
我试图解决这个问题 - http://www.spoj.pl/problems/LISA/
我最初想到了 Greedy,但后来意识到它行不通。这似乎是一个DP问题。我无法形成递归关系。我无法形成递归关系。不只是这个问题,每当我遇到一个稍微困难的DP问题时,我都会卡住。我知道这一定很常见,实践会有所帮助。但我只是从一个问题转移到另一个问题而没有真正找到解决方案。
对于上述问题和一般情况下,DP 遇到的任何建议都会很棒。
非常感谢。
请注意,允许的操作只有+
和*
- 关于两个操作数严格递增的二元操作(它们是正数)。
令dp[l][r]
为子串 [l,r] 的最大结果
以下是有关此问题的提示,也适用于每个 dp。
1) 什么是基本情况?(提示:非常简单的东西,不会通过添加/删除括号来改变它的值)
2) 你如何从大问题转移到小问题?(提示:您可以尝试找到上次操作的位置)
解决这个问题只需要一个简单的矩阵链乘法实现。
有关解决方案,请参阅: https ://shashankmishracoder.wordpress.com/2019/03/29/spoj-lisa-matrix-chain-multiplication-variation/