3 11記錄 區間DP

2021-10-21 19:57:09 字數 613 閱讀 7017

基本上是個區間dp的板子。

#include

#include

#include

using

namespace std;

long

long a[

101]

,dp[

101]

[101

],n;

long

long

dfs(

int l,

int r)

return dp[l]

[r];

}int

main()

在這道題中,當我們取出一張牌,整個區間被一分為二。由於拿過之後的合成非常困難,不妨直接在已經被二分的區間裡再次一分為二,dfs成型,故此題大方向是dfs。

由於一分為二且先分後合的處理方式,導致我們不能純dfs,因為回溯的處理會非常麻煩且用時恐怖(一路回溯就是黑洞),因此一邊dfs一邊記錄(專業說法叫記憶化處理),區間dp成立。

線性dp 區間dp

1 尼克的任務 額一道挺水的題,愣是做了幾個小時 動態規劃大致的思路還是找乙個轉移 換個詞就是影響 我們可以明顯看出本題的規則 空暇時,一遇到任務必須挑乙個接 求1 n時間內最大空暇時間 所以將任務排序是必要的,兩個關鍵字 再來想象一下當我做到第i 個任務時,我在 st i st i t i 1 時...

hdu4675 TSP 區間DP 記錄轉移

長春online的題目,當時讀了就推出了分治 記憶化搜尋,其實就是區間dp。時間不夠就沒寫,還是太弱了。這種題目,量,應該在30min內a掉。dp i j k 表示處理 i,j 內,先訪問k 的最小路程。注意到k j時,列舉dp i j 1 x 路徑為 j x dp i j 1 x 1 j 1 j ...

線狀DP及區間DP

這裡我們都用到動態規劃的思想 dynamic programming,簡稱dp。本質就是組合子問題來求解原問題,且對每個子問題只求解一次。一般來說四個步驟 1.刻畫乙個最優結構特徵 2.遞迴的定義最優解值 3.計算最優解的值 4.利用計算出的資訊構造乙個最優解 這邊直接給出 include incl...