hdu 1257 最少攔截系統

2021-06-19 18:43:19 字數 600 閱讀 2346

題目大意:給定一串飛彈的高度,問最少需要多少飛彈攔截系統。

思路:lis

分析:

首先,至少需要一套攔截系統,一開始可以打到第一顆飛彈的位置。之後每來一顆飛彈更新一下系統能打到的高度。一旦有一顆飛彈所有系統都打不到了,增加乙個系統。那麼就會得到乙個序列,每個系統目前能打到的最高位置。這個序列是遞增的,後面的系統能打到的高度一定比前面高,因為如果不比前面高,那我為什麼還要增加乙個系統呢?用前面的系統就能完成任務了。這麼一想,其實是在求飛彈高度序列的最長上公升子串行。想半天才明白。。腦子不太會轉彎= =

**:

#include #include #include using namespace std;

const int maxn = 1000;

int missile[maxn], n, dp[maxn];

int lis()

int main()

}

hdu1257 最少攔截系統

解釋 當炮彈乙個接乙個的從空中飛來時,系統可以攔住比它攔住前乙個高度低的炮,比前乙個高的不攔,給第二個系統攔 problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過...

HDU1257 最少攔截系統

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

HDU 1257 最少攔截系統

題目大意 有一種飛彈攔截系統,每次只能發射比前一發飛彈低的炮彈,給定一些飛彈的襲擊順序,求至少需要多少飛彈攔截系統來完全阻止 思路 好久沒做題。做題水的 直接模擬即可 includeconst int maxn 30000 10 const int inf 0x3ffffff int a maxn ...