NYoj攔截飛彈(動態規劃 最長上公升子串行變形)

2021-07-05 15:15:09 字數 954 閱讀 3218

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3 描述

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

輸入

第一行輸入測試資料組數n(1<=n<=10)

接下來一行輸入這組測試資料共有多少個飛彈m(1<=m<=20)

接下來行輸入飛彈依次飛來的高度,所有高度值均是大於0的正整數。

輸出輸出最多能攔截的飛彈數目

樣例輸入

2

8389 207 155 300 299 170 158 65

388 34 65

樣例輸出

6

2

題目大意:題中給出乙個飛彈攔截系統,並且它第一次可以攔截任意高度的飛彈,往後每次攔截的飛彈都比上乙個攔截的要低.

問其最多能攔截多少枚飛彈?

解題思路:其實就是最長上公升子串行的變形,可以說本題是求最長下降子串行

已知求最長上公升子串行的模板為:

int res = 0;

for(int i =0;i

此時只需將迴圈中if語句的小於符號改為大於符號就變成求最長下降子串行了;

#include#include#includeusing namespace std;

int main()

printf("%d\n",sum);

} return 0;

}

NYOJ 攔截飛彈(動態規劃)

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

攔截飛彈(動態規劃)

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

NYOJ 79 攔截飛彈 動態規劃

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 某國為了防禦敵國的飛彈襲擊,發展中一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國飛彈來襲。由於該系統還在試用階段,所以只...