nyoj 814又見攔截導彈
阿新 • • 發佈:2017-06-20
整數 ++ pre -1 ron i++ cnblogs 題意 blog
又見攔截導彈
時間限制:3000 ms | 內存限制:65535 KB
難度:3
描述
大家對攔截導彈那個題目應該比較熟悉了,我再敘述一下題意:某國為了防禦敵國的導彈襲擊,新研制出來一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度。突然有一天,雷達捕捉到敵國的導彈來襲。由於該系統存在缺陷,所以如果想把所有的導彈都攔截下來,就要多準備幾套這樣的導彈攔截系統。但是由於該系統成本太高,所以為了降低成本,請你計算一下最少需要多少套攔截系統。
輸入
有多組測試數據。
每組數據先輸入一個整數N(N≤3000),代表有N發導彈來襲。接下來有N個數,分別代表依次飛來的導彈的導彈的高度。當N=-1時表示輸入結束。
輸出
每組輸出數據占一行,表示最少需要多少套攔截系統。
樣例輸入
8
389 207 155 300 299 170 158 65
5
265 156 123 76 26
樣例輸出
2
1
#include<stdio.h> int main() { int i,j,n,dp[3050],m,x; while(scanf("%d",&n)!=EOF&&n!=-1) { dp[1]=0,m=0; for( i=0;i<n;i++) { scanf("%d",&x); for( j=1;j<=m;j++) { if(x<=dp[j]) { dp[j]=x;//記錄最小 break; } } if(j>m) dp[++m]=x; } printf("%d\n",m); } return 0; }
nyoj 814又見攔截導彈