蒜頭君跳木樁

2021-09-02 11:01:38 字數 730 閱讀 3071

蒜頭君面前有一排 n 個木樁,木樁的高度分別是h1,h2,h3…hn。蒜頭第一步可以跳到任意乙個木樁,接下來的每一步蒜頭不能往回跳只能往前跳,並且跳下乙個木樁的高度 不大於 當前木樁。蒜頭君希望能踩到盡量多的木樁,請你幫蒜頭計算,最多能踩到多少個木樁。

輸入格式

第一行輸入乙個整數 n 代表木樁個數。第二行輸入 n 個整數h1,h2,h3…hn,分別代表 n 個木樁的高度。(1≤n≤1000,1≤hi≤100000)

輸出格式

輸出乙個整數,代表最多能踩到的木樁個數,佔一行。

題目已說,蒜頭君要跳的下乙個木樁的高度一定要小於等於當前腳下的木樁高度,抽象一下就可以發現本質是最長遞減子串行,所以可以寫出狀態轉移方程

if(a[i]<=a[j])

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

#include

using namespace std;

int dp[

1001];

//dp[i]表示前個i最長遞減子串行

int a[

1001];

//儲存木樁高度

intmain()

max_sum=max_sum>dp[i]

?max_sum:dp[i];}

cout

//give me five

}

蒜頭跳木樁 LIS

注意 跳下乙個木樁的高度不大於當前木樁 時間複雜度 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 co...

計蒜客 蒜頭跳木樁 ( LIS的簡單變種)

蒜頭君面前有一排 n n 個木樁,木樁的高度分別是h 1,h 2,h 3 cdots h nh1 h2 h3 hn 蒜頭第一步可以跳到任意乙個木樁,接下來的每一步蒜頭不能往回跳只能往前跳,並且跳下乙個木樁的高度 不大於 當前木樁。蒜頭君希望能踩到盡量多的木樁,請你幫蒜頭計算,最多能踩到多少個木樁。第...

蒜頭君面試

題目 問題描述 蒜頭君來蒜廠面試的時候,曾經遇到這樣乙個面試題 給定 n 個整數,求裡面出現次數最多的數,如果有多個重複出現的數,求出值最大的乙個。當時可算是給蒜頭君難住了。現在蒜頭君來考考你。輸入格式 第一行輸入乙個整數n 1 n 100000 接下來一行輸入n個 int 範圍內的整數。輸出格式 ...