線性 簡單DP 問題集合

2022-09-13 20:18:14 字數 1103 閱讀 7635

dp真的難.

簡單dp一點也不簡單dp

我tm就是個dp短板選手..

靠??今天的簡單dp我居然打對了?

靠??看來我的dp有救了???

然後重點是cys好菜菜菜菜菜菜啊!!!!

john的奶牛們計畫要跳到月亮上去。它們請魔法師配製了p(1 <= p <=150,000)種藥水,這些藥水必需安原來的先後次序使用,但中間可以跳過一些藥水不吃。每種藥水有乙個「強度」值 s ( 1 <= s <= 500 ),表示可以增強牛的跳躍能力。然而,藥力的作用卻是交替相反方向起作用,也就是說:當第奇數次吃藥時,牛獲得跳的更高的能力,而第偶數吃藥時,卻降低了跳高能力。在吃藥前,牛的跳高能力當然為 0 。

每種藥只能吃一次,開始時為第1次吃藥。

請求出牛可能跳到的最高高度--最大跳躍能力。

第一行:乙個整數 p

下面p行:每行乙個整數,表示按先後次序要吃的藥水的「強度」。

只乙個整數,表示最大彈跳能力。

872

1843

56

17
另我們對於當前第i個藥水的決策有:

最後只需要取選/不選的最大值存入即可(如圖

= copy之前題解,然鵝發現有很多不對勁的地方...

1 #include 2 #include 3 #include 4 #include 5 #include 6

#define ll long long

7using

namespace

std;89

intread()

1819

int ans[150001][3

];20

int que[150001

];21

22int

main()

3940 cout << max(ans[n][1] , ans[n][2

]);41

42return

0;

43 }

牛跳

簡單線性DP總結

首先 動態規劃適用的條件是該問題有最優子結構 無後效性 通過每個最優子結構狀態的遞推可以推出整體的最優解 對這些基本概念的理解既要理性也要一點點感性 dp問題解決順序是 1 確定狀態 通過最後一步將問題轉化為規模更小的子問題 2 轉移方程 3 初始條件與邊界情況 4 計算順序 其中前兩步是十分重要的...

求解線性dp的序列問題

lis longest increasing subsequence 最長上公升子串行 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1...

求解線性dp的序列問題

lis longest increasing subsequence 最長上公升子串行 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1...