nyoj 814 又見攔截飛彈 dp

2021-07-27 09:48:05 字數 1032 閱讀 4671

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3 描述

大家對攔截飛彈那個題目應該比較熟悉了,我再敘述一下題意:

某國為了防禦敵國的飛彈襲擊

,新研製出來

一種飛彈攔截系統

。但是這種飛彈攔截系統有乙個缺陷

:它的第一發炮彈能夠到達任意的高度

,但是以後每一發炮彈都不能超過前一發的高度

。突然有一天,

雷達捕捉到敵國的飛彈來襲

。由於該系統存在缺陷,所以如果想把所有的飛彈都攔截下來,就要多準備幾套這樣的飛彈攔截系統。但是

由於該系統

成本太高,所以為了降低成本,請你計算一下最少需要多少套攔截系統。

輸入

有多組測試資料。

每組資料先輸入乙個整數n(n≤3000),代表有n發飛彈來襲。接下來有n個數,分別代表依次飛來的飛彈的飛彈的高度。當n=-1時表示輸入結束。

輸出每組輸出資料佔一行,表示最少需要多少套攔截系統。

樣例輸入

8

389 207 155 300 299 170 158 65

5265 156 123 76 26

樣例輸出

2

1

思路:只要看出了一點這題就很好搞了。。。。   求最少的攔截系統就相當於求最長的遞增子串行。。。哎,嫩是沒看出這點

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 描述 大家對攔截飛彈那個題目應該比較熟悉了,我再敘述一下題意 某國為了防禦敵國的飛彈襲擊 新研製出來 一種飛彈攔截系統 但是這種飛彈攔截系統有乙個缺陷 它的第一發炮彈能夠到達任意的高度 但是以後每一發炮彈都不能超過前一發的高度 突然有...