經典動態規化問題最大非上公升子序

2021-09-13 18:37:01 字數 943 閱讀 4815

總時間限制: 

1000ms

記憶體限制: 

65536kb

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

輸入輸入有兩行,

第一行,輸入雷達捕捉到的敵國飛彈的數量k(k<=25),

第二行,輸入k個正整數,表示k枚飛彈的高度,按來襲飛彈的襲擊時間順序給出,以空格分隔。

輸出輸出只有一行,包含乙個整數,表示最多能攔截多少枚飛彈。

樣例輸入

8

300 207 155 300 299 170 158 65

樣例輸出

6
// dp[i] 表示以i結尾的最大非公升序子列和的個數

// 首先將dp[i]初始化為1

// if arr[i]<=arr[j]

// dp[i] =max(dp[i],dp[j]+1),j#include #define max_len 30

// dp[i] 表示以i結尾的最大非公升序子列和的個數

// 首先將dp[i]初始化為1

// if arr[i]<=arr[j]

// dp[i] =max(dp[i],dp[j]+1),j> k;

for (int i = 0; i < k; i++)

//dp[0] = 1;

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

}int res = 0;

for (int i = 0; i < k; i++)

std::cout << res << std::endl;

}

hdu1025 超經典最長上公升子序問題

2015.11.16 1025.最長上公升自序問題 n 1 n 500,000 sample input 21 2 2 13 1 22 3 3 1sample output case 1 my king,at most 1 road can be built.case 2 my king,at mo...

經典動態規劃問題 最長上公升子串行 LIS

目錄 最長上公升子串行 o n 2 動態規劃 o n logn 貪心 二分 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。狀態 dp i 表示以a i ...

動態規劃(二) 經典問題之最長上公升子串行

題目描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它的一些上公升子串行,如 1,7 3,4,8 等等...