總時間限制:
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 等等...