攔截飛彈(最長降序子串行)

2021-10-02 20:12:51 字數 780 閱讀 7969

描述

某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的時間順序,不允許先攔截後面的飛彈,再攔截前面的飛彈。

輸入

輸入有兩行,

第一行,輸入雷達捕捉到的敵國飛彈的數量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顆星.對於一套攔截系統最多能攔截多少飛彈,求個非嚴格下降子串行就可以了.就不廢話了.主要還是求最少攔截數量.有乙個結論,最少攔截系統數量為 嚴格上公升...