最長非上公升子串行 刪除最少的元素

2021-08-16 11:20:51 字數 448 閱讀 1711

其實就是最長上公升子串行的一種變相,要求最長非上公升子串行,其實就是把大小順序換一下,替換是去替換子串行中那個第乙個比你小的數。分兩次,從頭和從尾開始,dp[i]表示到達i的子串行長度。加起來-1就是兩個序列到i的長度和。

#include#includeusing namespace std;

int main()

else

dp[i]+=len2;

}int maxx=0;

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

cout<

return 0;

}

對於**中標註的細節要注意。我這裡是直接用乙個dp來存長度,也可以分別用dp1 dp2陣列最後相加找最大值。

飛彈攔截(最長非上公升子串行和最長上公升子串行)

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

最少攔截系統(最長上公升子串行)

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

攔截飛彈,最長非上公升子串行,DP 二分

題目描述 某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲...