藍橋杯題目練習 攔截飛彈

2021-10-02 23:29:01 字數 1212 閱讀 8443

攔截飛彈

題目描述

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

輸入飛彈依次飛來的高度(雷達給出的高度資料是不大於30000的正整數),計算這套系統最多能攔截多少飛彈,如果要攔截所有飛彈最少要配備多少套這種飛彈攔截系統。

輸入

一行,為飛彈依次飛來的高度

輸出

兩行,分別是最多能攔截的飛彈數與要攔截所有飛彈最少要配備的系統數

樣例輸入

389 207 155 300 299 170 158 65

樣例輸出62

思考:

最多能攔截的飛彈就是高度的最長下降子串行;

要攔截所有飛彈最少要配備的系統數就是高度的最長上公升子串行

#include

using

namespace std;

int height[

100]

;int dp_down[

100]

;//高度下降序列依次的長度

int dp_up[

100]

;//高度上公升序列依次的長度

int mycount =1;

int down =

0, up =0;

intmain()

//計算以當前飛彈高度作為最後乙個飛彈的上公升下降序列

for(

int i =

1; i <= mycount -

1; i++)}

if(height[j]

<= height[i])}

} down = down > dp_down[i]

? down : dp_down[i]

; up = up > dp_up[i]

? up : dp_up[i];}

cout << down +

1<< endl << up +

1<< endl;

return0;

}

藍橋杯 攔截飛彈

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

藍橋杯 演算法訓練 攔截飛彈

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

藍橋杯 演算法訓練 攔截飛彈

試題 演算法訓練 攔截飛彈 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系...