動態規劃專項訓練 2024下半年

sad_lin發表於2024-09-29

前言

RT,因為我dp實在是太差了,我將集中進行動態規劃的專項訓練,按照下方題單,依次寫下題解,好進行復習分析,可能還會夾雜其他題,但不重要了。

我大概會把大部分 提高&省選 以下的題目都做一遍

P1095 守望者的逃離

有貪心和dp兩種做法:

  • 貪心:分別計算 只閃現 與 只跑步 的距離,如果閃現大於跑步,就可以將跑步距離更換為閃現的距離,這樣就相當於在合適的時候進行閃現否則就跑步的操作。

  • dp:先遞推求出 只閃現 的距離陣列,再進行一遍 只跑步 的操作,但只跑步大於只閃現,將這步替換為跑步,同樣實現相同操作結果。

P1077 擺花

其實還是要先看懂題意,要連續選多相同編號盆,最後選 \(m\) 個盆,問方案數,設狀態為 \(dp[i][j]\) 選前 \(i\) 種盆,選擇了 \(j\) 個盆的方案數,此時可以得到樸素的轉移,但發現這與 01 揹包有點像,每種盆選的數量可以抽象為物品的體積,那沒得說,直接套板去吧。

P3842 線段

設狀態為 \(dp[i][0]\) 為走完第 \(i\) 行停到線段左端點所用的最短的長度,相反 \(dp[i][1]\) 為走完第 \(i\) 行停到線段右端點所用的最短的長度。

可以發現想要停到左端點並走完本行線段要上一行的左端點到本行右端點再到左端點,如下圖。

image

此時得到轉移方程 $$。

相關文章