NOIP1999 攔截飛彈

2022-05-12 21:41:20 字數 1129 閱讀 3059

noip1999 攔截飛彈 noip1999

攔截飛彈 

題目描述 description

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

輸入描述 input description

輸入飛彈依次飛來的高度(雷達給出的高度資料是不大於30000的正整數)

輸出描述 output description

輸出這套系統最多能攔截多少飛彈,如果要攔截所有飛彈最少要配備多少套這種飛彈攔截系統。

樣例輸入 sample input

389 207 155 300 299 170 158 65 

樣例輸出 sample output62

資料範圍及提示 data size & hint

飛彈的高度<=30000,飛彈個數<=20

思路這道題的突破口在於問題的轉化

= =先是第一問: 「最多能攔截的飛彈數」。根據題目中飛彈的毛病,可以把問題轉化成經典的最長

不上公升子串行,動態規劃

o(cnt2)

完美解決;

再看第二問: 「最少需要的系統數」。順延上一問的思路,「不可能由之前已經確定的系統攔截下來的飛彈」應當新增到當前位置前的最長

上公升子串行中。同樣是經典問題,動態規劃o(cnt2)

。最後稍微得瑟一下→_→在沒有優化的情況下,這段**在發帖前包攬了wikioi上「最快」「最短」以及「記憶體最少」三項指標~(好吧是因為這題太水了)

1 #include 

2using

namespace std;

3int h[22], suc[22]=, cnt[22]=, ms=0, mc=0;

4int main()

5 19

if(suc[i]>ms)ms=suc[i];

20if(cnt[i]>mc)mc=cnt[i];

21     }

22     printf("

%d\n%d

", ms, mc);

23return

0;24 }

NOIP1999 攔截飛彈

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

NOIP1999 攔截飛彈

1044 攔截飛彈 1999年noip全國聯賽提高組 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 檢視執行結果 題目描述 description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但...

攔截飛彈noip1999

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