hdoj 1257 最少攔截系統 dp

2021-08-20 12:42:23 字數 786 閱讀 9834

某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈. 

怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊.所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統. 

input

輸入若干組資料.每組資料報括:飛彈總個數(正整數),飛彈依此飛來的高度(雷達給出的高度資料是不大於30000的正整數,用空格分隔) 

output

對應每組資料輸出攔截所有飛彈最少要配備多少套這種飛彈攔截系統. 

sample input

8 389 207 155 300 299 170 158 65
sample output
2

這題是放在dp訓練裡的……不過我沒想到它和dp有什麼關係就是了233

我的思路是直接開乙個陣列存放各個飛彈攔截系統的最高攔截高度,然後遍歷比較就ok了。

需要注意的是攔截高度不能超過前一發攔截炮彈的高度,因此每次攔截完以後要把攔截高度改為當前被攔截的炮彈高度。

ac**:

#include using namespace std;

int main()

}if(i>ans)

b[++ans]=now;

}cout<}

return 0;

}

hdoj1257 最少攔截系統

第一篇部落格,想想還有些小激動。使用lis,最長遞增子串行,飛彈打的高度是遞減的,如果在序列中出現了遞增,那麼說明我們需要另外一套系統來打這個遞增的高度,也就是出現了多少次的遞增,我們就需要多少套系統。求出最長遞增子串行就是結果。include define max 30050 define cmp...

HDOJ 1257 最少攔截系統 貪心

點我挑戰題目 一開始理解錯了這道題。這麼多個飛彈排好序不只需要1個攔截系統嗎。後來發現自己真傻。那齣這個題還有啥意思,反正都需要乙個。給出n個飛彈,這n個飛彈的順序是不能改變的。並且對於每個攔截系統來說,他所能打到的高度只能越來越小不能增大 或保持不變 那麼對於每個飛彈來說,要先判斷當前所有的飛彈系...

hdoj 1257 最少攔截系統(動態規劃)

最少攔截系統 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能...