時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:3 描述
大家對攔截飛彈那個題目應該比較熟悉了,我再敘述一下題意:
某國為了防禦敵國的飛彈襲擊
,新研製出來
一種飛彈攔截系統
。但是這種飛彈攔截系統有乙個缺陷
:它的第一發炮彈能夠到達任意的高度
,但是以後每一發炮彈都不能超過前一發的高度
。突然有一天,
雷達捕捉到敵國的飛彈來襲
。由於該系統存在缺陷,所以如果想把所有的飛彈都攔截下來,就要多準備幾套這樣的飛彈攔截系統。但是
由於該系統
成本太高,所以為了降低成本,請你計算一下最少需要多少套攔截系統。
輸入
有多組測試資料。
每組資料先輸入乙個整數n(n≤3000),代表有n發飛彈來襲。接下來有n個數,分別代表依次飛來的飛彈的飛彈的高度。當n=-1時表示輸入結束。
輸出每組輸出資料佔一行,表示最少需要多少套攔截系統。
樣例輸入
8389 207 155 300 299 170 158 65
5265 156 123 76 26
樣例輸出
21
思路:只要看出了一點這題就很好搞了。。。。 求最少的攔截系統就相當於求最長的遞增子串行。。。哎,嫩是沒看出這點
nyoj79求的是最長遞減子串行。**基本一模一樣。
ac**如下:
#include#include#includeusing namespace std;
const int maxn=3000+10;
int d[maxn];
int v[maxn];
int m;
int dp(int i)
return ans;
}int main(){
while(scanf("%d",&m)==1 && m!=-1){
for(int i=0;i
nyoj 814又見攔截飛彈
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 大家對攔截飛彈那個題目應該比較熟悉了,我再敘述一下題意 某國為了防禦敵國的飛彈襲擊 新研製出來 一種飛彈攔截系統 但是這種飛彈攔截系統有乙個缺陷 它的第一發炮彈能夠到達任意的高度 但是以後每一發炮彈都不能超過前一發的高度 突然有...
nyoj 814 又見攔截飛彈
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 大家對攔截飛彈那個題目應該比較熟悉了,我再敘述一下題意 某國為了防禦敵國的飛彈襲擊 新研製出來 一種飛彈攔截系統 但是這種飛彈攔截系統有乙個缺陷 它的第一發炮彈能夠到達任意的高度 但是以後每一發炮彈都不能超過前一發的高度 突然有...
NYOJ 814 又見攔截飛彈
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 大家對攔截飛彈那個題目應該比較熟悉了,我再敘述一下題意 某國為了防禦敵國的飛彈襲擊 新研製出來 一種飛彈攔截系統 但是這種飛彈攔截系統有乙個缺陷 它的第一發炮彈能夠到達任意的高度 但是以後每一發炮彈都不能超過前一發的高度 突然有...