最少攔截系統 HDU 1257

2021-08-06 08:30:18 字數 928 閱讀 8876

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

怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊.所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統. 

input

輸入若干組資料.每組資料報括:飛彈總個數(正整數),飛彈依此飛來的高度(雷達給出的高度資料是不大於30000的正整數,用空格分隔) 

output

對應每組資料輸出攔截所有飛彈最少要配備多少套這種飛彈攔截系統. 

sample input

8 389 207 155 300 299 170 158 65

sample output

2這個題也不能想的太簡單。。有好幾個攔截系統的 可以跳著來。

自己想的竟然過了 開心

用陣列來模擬攔截系統 每次有一枚飛彈來了就遍歷從小到大排好序的陣列

從小到大是因為 我們要盡量讓新飛彈去高度和他z最相近的系統 要不就很浪費

然後找到了就更新攔截系統高度值 都不符就建新的攔截系統

#include #include#include#include#includeusing namespace std;

int a[200005];

int main()

{ int n;

while(cin>>n)

{int z=0;

int ans=0;

memset(a,0,sizeof(a));

while(n--)

{int b;

scanf("%d",&b);

int i;

for(i=0;i

hdu1257 最少攔截系統

解釋 當炮彈乙個接乙個的從空中飛來時,系統可以攔住比它攔住前乙個高度低的炮,比前乙個高的不攔,給第二個系統攔 problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過...

hdu 1257 最少攔截系統

題目大意 給定一串飛彈的高度,問最少需要多少飛彈攔截系統。思路 lis 分析 首先,至少需要一套攔截系統,一開始可以打到第一顆飛彈的位置。之後每來一顆飛彈更新一下系統能打到的高度。一旦有一顆飛彈所有系統都打不到了,增加乙個系統。那麼就會得到乙個序列,每個系統目前能打到的最高位置。這個序列是遞增的,後...

HDU1257 最少攔截系統

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