蒜頭跳木樁 LIS

2021-10-04 20:19:08 字數 569 閱讀 8040

注意:跳下乙個木樁的高度不大於當前木樁

時間複雜度(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 蒜頭第一步可以跳到任意乙個木樁,接下來的每一步蒜頭不能往回跳只能往前跳,並且跳下乙個木樁的高度 不大於 當前木樁。蒜頭君希望能踩到盡量多的木樁,請你幫蒜頭計算,最多能踩到多少個木樁。第...