C++ 理解特定动态规划模式时遇到的问题

C++ 理解特定动态规划模式时遇到的问题,c++,algorithm,c++14,dynamic-programming,C++,Algorithm,C++14,Dynamic Programming,我不熟悉动态规划。根据作者的说法,我无法在网站上找到一种普遍的模式 我遇到问题的部分是- 决策 此模式的一般问题声明是,在决定是否使用当前状态时可以原谅。因此,问题需要你在当前状态下做出决定 声明 给定一组值,找到一个答案,并选择或忽略当前值 方法 如果决定选择当前值,请使用忽略该值的上一个结果;反之亦然,如果您决定忽略当前值,请在使用该值的位置使用上一个结果 // i - indexing a set of values // j - options to ignore j values

我不熟悉动态规划。根据作者的说法,我无法在网站上找到一种普遍的模式

我遇到问题的部分是-

决策
此模式的一般问题声明是,在决定是否使用当前状态时可以原谅。因此,问题需要你在当前状态下做出决定

声明
给定一组值,找到一个答案,并选择或忽略当前值

方法
如果决定选择当前值,请使用忽略该值的上一个结果;反之亦然,如果您决定忽略当前值,请在使用该值的位置使用上一个结果

 // i - indexing a set of values
 // j - options to ignore j values
 for (int i = 1; i < n; ++i) {
    for (int j = 1; j <= k; ++j) {
       dp[i][j] = max({dp[i][j], dp[i-1][j] + arr[i], dp[i-1][j-1]});
       dp[i][j-1] = max({dp[i][j-1], dp[i-1][j-1] + arr[i], arr[i]});
     }
   }
//i-索引一组值
//j-忽略j值的选项
对于(int i=1;i对于(int j=1;j),这些方程取决于您试图解决的问题,它们不是固定的。@SomeDude”//j-options to ignore j values“这条线意味着什么。对于一个特定的问题,我们只有两个选项来选择它或忽略它。这些方程取决于您试图解决的问题,它们不是固定的。@SomeDude“//j-options to ignore j values”这行的意思是什么。对于一个特定的,我们只有两个选项可以选择它或忽略它。