codevs1044攔截飛彈

2021-07-24 06:24:42 字數 501 閱讀 3127

這個題第一問是求最長下降子串行,第二問可以轉化成求最長上公升子串行,為什麼?

因為我們每遇到有hi < hj的情況(i < j)都要再使用一枚飛彈,因為飛彈只處理hi >hj的情況嘛,很好理解的吧

所以**如下:

(完全可以更短)

#include 

#include

#include

#include

using

namespace

std;

int dp[5000];

int maps[5000];

int n=0;

int main()

ans = max(dp[i],ans);

}

for(int i = 1; i <= n; i ++)

anss = max(dp[i],anss);

}

}cout

0;}

codevs 1044 攔截飛彈

傳送門 解題思路 首先求解最多攔截多少飛彈,每個飛彈有兩種情況,攔截或者不攔截,01揹包問題,但是空間複雜度比較高。我們可以考慮這樣乙個問題,攔截的最後乙個飛彈一定時最小的,因此我們從後往前找,只要這個飛彈之後沒有更小的,那麼這就是最後乙個飛彈,如果有更小的,那這個就是更小的那個飛彈的前乙個。所以我...

code VS 1044 攔截飛彈

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

codevs 攔截飛彈 1044

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