最少攔截系統
time limit: 1000 ms memory limit: 65536 kib
problem description
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.
怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊.所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統.
input
輸入若干組資料.每組資料報括:飛彈總個數(正整數),飛彈依此飛來的高度(雷達給出的高度資料是不大於30000的正整數,用空格分隔)
output
對應每組資料輸出攔截所有飛彈最少要配備多少套這種飛彈攔截系統.
sample input
8 389 207 155 300 299 170 158 65
sample output
#include
#include
using
namespace
std;
int main()
} num++;
} }
cout
<< num << endl;
}}
1.這題目本身的實現思路並沒有太大難點,關鍵是**的實現上。
2.對於**,運用合適的技巧,能讓**異常簡潔,但如果你沒有這些技巧,可能**變得很臃腫,所以,這裡很多方法是你需要掌握的。
3.首先,乙個陣列,其值可以有不同的含義,這裡a[i]>0
則表示未攔截的高度,a[i]==0
表示已經被前面的系統所攔截了,我們採用雙for
結構,條件就是判斷a[i]
是否為0,如果不是0則說明需要一套新的攔截系統,temp取該值,再次進入迴圈。
4.因為迴圈後i++,所以不用對這個值進行處理了,處理不處理其實不影響最後的結果。
2075 最少攔截系統
time limit 1000ms memory limit 65536k 有疑問?點這裡 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還...
2075 最少攔截系統
problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有...
最少攔截系統 SDUToj 2075
time limit 1000ms memory limit 65536k 有疑問?點這裡 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還...