ACM DP 最少攔截系統

2021-08-21 07:20:08 字數 899 閱讀 2917

題目:

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

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

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

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

sample input

8 389 207 155 300 299 170 158 65
sample output
2

分析:很容易聯絡到上公升子串行,最開始是想計算上公升子串行的個數(最小的),但是這個最剛開始考慮的太簡單,如果前面同時又幾個符合的,應該選出最合適的,也就是符合條件的最小的,將每個序列的最後乙個標記為1,最後就可以計算了;

**:#include

#include

#include

using namespace std;

#define inf 0x3f3f3f3f

int a[30005];

int book[30005];

int main()

}if(t!=-1)//說明又符合這個點的序列,將這個點加入

else//這裡一定注意,第一次就是這裡錯了,如果沒合適的,就自己新開乙個序列

book[i]=1;

}for( i=0;iprintf("%d\n",casee);

}return 0;

}

最少攔截系統

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

最少攔截系統

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

最少攔截系統

b 最少攔截系統 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能...