最少攔截系統(簡單Lis)

2021-07-16 12:43:01 字數 837 閱讀 1043

最少攔截系統

time limit:1000ms memory limit:32768kb 64bit io format:%i64d & %i64u

submit

status

description

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

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

input

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

output

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

sample input

8 389 207 155 300 299 170 158 65

sample output2

題意說白了就是讓你找有多少個遞減子串行:

#include#include#includeusing namespace std;

#define maxn 0xfffffff

int n;

int cont,ans;

int high[1010];

int lis(int n)

{ int high=maxn; //每次遞迴 lis 都要將high重新賦值;

for(int i=0;i

HDU 1257 最少攔截系統(LIS)

題意 中文略 解題思路 幾天前a的題,這個題讓你求出所給序列中,有幾條最長下降子串行 相對 但是要是單純的去求最長下降子串行的條數,就需要多搞個迴圈記錄下降子串行的條數,時間可能會超時。仔細想想這個題就是求最長上公升子串行,並輸出最長有多長就行了。具體是如何想的呢,就是我們把整個問題反過來思考,設d...

HDU 1257 最少攔截系統 LIS

最少攔截系統 include include include using namespace std const int maxn 30000 5 int n int nums maxn int dp maxn 以第i個元素結尾的最長遞增子串行 i從1算起 int ans 從題目中可以得知,攔截系統...

HDU1257 最少攔截系統(LIS)

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