描述
某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的時間順序,不允許先攔截後面的飛彈,再攔截前面的飛彈。
輸入
輸入有兩行,
第一行,輸入雷達捕捉到的敵國飛彈的數量k(k<=25),
第二行,輸入k個正整數,表示k枚飛彈的高度,按來襲飛彈的襲擊時間順序給出,以空格分隔。
輸出
輸出只有一行,包含乙個整數,表示最多能攔截多少枚飛彈。
最長降序,dp[i]為以m[i]為降序最後一位的長度,動規,由前面的逐步推出後面的
#include
using
namespace std;
intmain()
;scanf
("%d"
,&n)
;for
(i=1
;i<=n;i++
)int l=0;
for(i=
2;i<=n;i++)if
(dp[i]
>l)
l=dp[i];}
printf
("%d\n"
,l+1);
return0;
}
攔截飛彈(最長不增子序列 最長不降子串行)
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度 雷達給出...
攔截飛彈 最長上公升子串行 LIS
某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的時間順...
攔截飛彈 最長上公升 下降子串行
題意,長度為n的序列,a1,a2,ai,an,求最長嚴格上公升子串行長度,與最長下降非嚴格自序列長度.解法 首先不得不吐嘈下題目的讀入,噁心指數上達5顆星.對於一套攔截系統最多能攔截多少飛彈,求個非嚴格下降子串行就可以了.就不廢話了.主要還是求最少攔截數量.有乙個結論,最少攔截系統數量為 嚴格上公升...