注意:跳下乙個木樁的高度不大於當前木樁
時間複雜度(n2
)(n^2)
(n2)
#include
using
namespace std;
int a[
1010];
int dp[
1010];
//求最長"不上公升"子串行
intmain()
int num=1;
for(
int i=
0;inum =
max(num,dp[i]);
} cout<'\n'
;return0;
}
本題中下一木樁「不高於」當前木樁,存在<
=<=
<
=的情況,不可借用二分查詢的方法計算。二分查詢的方式時間複雜度為nlo
gn(n
)nlogn(n)
nlogn(
n),只適合於單調的情況,「最長上公升子串行"或者"最長下降子串行」。
蒜頭君跳木樁
蒜頭君面前有一排 n 個木樁,木樁的高度分別是h1,h2,h3 hn。蒜頭第一步可以跳到任意乙個木樁,接下來的每一步蒜頭不能往回跳只能往前跳,並且跳下乙個木樁的高度 不大於 當前木樁。蒜頭君希望能踩到盡量多的木樁,請你幫蒜頭計算,最多能踩到多少個木樁。輸入格式 第一行輸入乙個整數 n 代表木樁個數。...
計蒜客 蒜頭跳木樁 ( LIS的簡單變種)
蒜頭君面前有一排 n n 個木樁,木樁的高度分別是h 1,h 2,h 3 cdots h nh1 h2 h3 hn 蒜頭第一步可以跳到任意乙個木樁,接下來的每一步蒜頭不能往回跳只能往前跳,並且跳下乙個木樁的高度 不大於 當前木樁。蒜頭君希望能踩到盡量多的木樁,請你幫蒜頭計算,最多能踩到多少個木樁。第...