DP的狀態設定及狀態轉移方程總結

最長上升子序列:

  • dp[i],以下標i爲結尾的最大長度
  • dp[i] = max{ dp[j]+1 | j<i,a[j]<a[i] }

最長公共子序列:

  • dp[i][j],串a的前i個和串b的前j箇中最大的公共長度
  • if(a[i-1]==b[j-1])  dp[i][j] = dp[i-1][j-1]+1;
    else   dp[i][j] = max( dp[i-1][j] , dp[i][j-1] );
    狀態設定比較正常,轉移方程要思考:
    (要注意,串從0下標開始,但dp的下標是指前幾個)

01揹包
+

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章