攔截飛彈 線性DP求最長不上公升子串行 貪心

2021-10-03 15:05:23 字數 916 閱讀 9218

題目:

解題思路:

第一問:沒什麼好說的,基礎的線性dp求解經典的最少不上公升(下降)子串行;

第二問:貪心思想。

需要n個飛彈就想當於把一串數字劃分為n個部分,且每個部分都是一段遞減的子串行 例如 :6 5 1 7 3 2 需要最少的炮彈–> 6 5

1//7 3 2 顯然劃分了兩個部分。 如果想讓需要的炮彈數最少,就是等價於劃分的每個部分的長度最長

使用的小技巧:第二問用了乙個 bl陣列用於標記該炮彈是否已經被打掉,被打掉標記為1,求解時則不需要再考慮。

ac**:

#include

#define n 30010

using

namespace std;

typedef

long

long ll;

ll a[n]

;ll dp[n]

;ll bl[n]

;int

main()

//下面是基礎的dp問題:最長下降子串行

for(ll i=

0;i}sort

(dp,dp+n)

; cout<

<

//下面求彈最少要配備的系統數

ll ans=0;

ll l=a[0]

;for

(ll i=

0;ians++;}

} cout<

}

攔截飛彈(最長上公升子串行,最長不上公升子串行)

攔截飛彈 noip 1999 題目描述 張琪曼 老師,修羅場是什麼?墨老師 修羅是佛家用語,修羅畢生以戰鬥為目標,修羅場指的是他們之間的死鬥坑,人們通常用 修羅場 來形容慘烈的戰場。後來又引申出 乙個人在困境中做絕死奮鬥 的意思。所以,這其實也在暗示我們,即使是身處絕境,也不要放棄奮鬥。再說了,情況...

飛彈攔截(dp 最長不上公升子串行)

從頭填坑。除了數字三角形之外做的第二道dp。題目描述 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,由於該系統還在試用階段,所以只有一套系統,因此有可...

線性dp 攔截飛彈 最長上公升子串行模型 貪心

強相關 線性dp 最長上公升子串行 模板題 最長上公升子串行模型 貪心解法 本題高階版 線性dp 飛彈防禦系統 最長上公升子串行模型 貪心 dfs 1010.攔截飛彈 重點 線性dp lis問題 貪心 思路 基於這個思想,第一問就寫個lis就行了。第二問實現方式為 線性dp 最長上公升子串行 模板題...