HDU 1257 最少攔截系統 貪心

2021-08-15 04:28:01 字數 837 閱讀 3757

problem description

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

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

input

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

output

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

sample input

8 389 207 155 300 299 170 158 65

sample output

2

思路:

這題資料沒給全,陣列可以開大一點,

剛開始以為,遇到下降的cnt需要+1,wa了之後才想起,前面系統的高度可能比後面的高。

所以每當不能攔截時加入乙個系統,然後在系統中從小到大尋找,能用小的攔就用小的,所有都不能攔截就新開乙個。

**:

#includeint v[1005];

int main()

if(j==index)

//經過如上操作,v存的系統已經是從小到大排列

}printf("%d\n",index);

}return 0;

}

HDU1257 最少攔截系統 貪心

題目鏈結 在kuangbin的dp專題裡找到的,然而有點坑的是並不是用dp做的。此題用貪心才是正解啊 對於每一發飛彈,若已經存在攔截系統,且可以攔截此飛彈,那麼重新開一台是沒意義的,因為達到的效果和通過降低現有攔截系統高度來攔截所達到的效果是一樣的,當然若攔截不了那就另當別論去開一台,問題是有多台可...

最少攔截系統 HDU 1257 貪心

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

hdu 1257 最少攔截系統 (貪心)

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