總時間限制: 1000ms 記憶體限制: 65536kb
描述
某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的時間順序,不允許先攔截後面的飛彈,再攔截前面的飛彈。
輸入
輸入有兩行,
第一行,輸入雷達捕捉到的敵國飛彈的數量k(k<=25),
第二行,輸入k個正整數,表示k枚飛彈的高度,按來襲飛彈的襲擊時間順序給出,以空格分隔。
輸出
輸出只有一行,包含乙個整數,表示最多能攔截多少枚飛彈。
樣例輸入
8
300207
155300
299170
15865
樣例輸出
6
題目分析
該題為求最長下降子串行問題,可以用人人為我的方法遞推。
嘗試1:設定maxlen[i],求前i個數中的最長下降子串行,
則每乙個maxlen[i]都與i前面所有的數有關,難以遞推;
嘗試2:設定maxlen[i],求以第i個數為結尾的最長子序列。
遞推公式:遍歷i前面每乙個maxlen[k],a[k]>a[i]時,maxlen[k]+=1;
若沒有比第i個數大的則maxlen[i]為1;
目標:*max_element(maxlen,maxlen+n)
#include
#include
using
namespace std;
const
int maxn=30;
int a[maxn]
;int maxlen[maxn]
;int
main()
for(
int i =
2;i<=n;i++)}
cout<<
*max_element
(maxlen+
1,maxlen+n+1)
;return0;
}
動態規劃 攔截飛彈
動態規劃 攔截飛彈 時間限制 1 sec 記憶體限制 256 mb 張琪曼 老師,修羅場是什麼?墨老師 修羅是佛家用語,修羅畢生以戰鬥為目標,修羅場指的是他們之間的死鬥坑,人們通常用 修羅場 來形容慘烈的戰場。後來又引申出 乙個人在困境中做絕死奮鬥 的意思。所以,這其實也在暗示我們,即使是身處絕境,...
動態規劃之攔截飛彈
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 某國為了防禦敵國的飛彈襲擊,發展中一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國飛彈來襲。由於該系統還在試用階段,所以只...
1618 動態規劃 攔截飛彈
題目描述 張琪曼 老師,修羅場是什麼?墨老師 修羅是佛家用語,修羅畢生以戰鬥為目標,修羅場指的是他們之間的死鬥坑,人們通常用 修羅場 來形容慘烈的戰場。後來又引申出 乙個人在困境中做絕死奮鬥 的意思。所以,這其實也在暗示我們,即使是身處絕境,也不要放棄奮鬥。再說了,情況其實沒有這麼糟糕,因為我們最新...