K 最少攔截系統(動態規劃)

2021-08-06 05:59:53 字數 868 閱讀 7229

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

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

input

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

output

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

sample input

8 389 207 155 300 299 170 158 65

sample output

2c++**:

/*

思路:先把第乙個攔截系統高度初始化為第乙個飛來的飛彈的高度,然後讓下乙個飛彈與所有攔截系統比較過去,情況如下

從第乙個攔截系統開始比較,

①若第 i 個飛彈高度低於第 j 個攔截系統的高度,則將第 j 個攔截系統高度更新為第 i 個飛彈的高度;

②若第 i 個飛彈高度比所有攔截系統的高度都高,則在加入乙個攔截系統,該攔截系統高度就是第 i 個飛彈的高度;

*/#include#includeint main()

//飛彈的攔截高度大於來的飛彈的高度

}if(j > k)

b[++k] = a[i]; //新增乙個攔截系統

} printf("%d\n",k+1);

} return 0;

}

最少攔截系統 動態規劃)

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

hdoj 1257 最少攔截系統(動態規劃)

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

杭電1257 最少攔截系統(動態規劃)

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