給乙個陣列a1, a2 … an,找到最長的上公升降子串行ab1
第一行,乙個整數n。
第二行 ,n個整數(n < = 5000)
輸出k的極大值,即最長不下降子串行的長度
9 3 6 2 7
按自己的思路隨便寫了乙個
#include
using
namespace
std;
int main()
; for(int i=0; icin>>num[i];
int dp[5010]= ;
dp[0]=1;
int result=0;
for(int i=1; iint max1=1;
for(int j=0;jif(num[i]>num[j]) max1=max(max1,dp[j]+1);
}dp[i]=max1;
if(resultcout
0;}
一點想法:
找最長嚴格上公升子串行的時候,要注意最終的結果不是在dp[num-1]處取得
因為最後乙個數可能非常非常小
這個結果應該是整個程式在執行的時候所產生的最大值
這裡的動態規劃中,dp不都是存的最長子序列長度
只有那些特別大的資料點上,dp儲存的才是有用的
1576 最長嚴格上公升子串行
時間限制 1 s 空間限制 256000 kb 題目等級 gold description 給乙個陣列a1,a2 an,找到最長的上公升降子串行ab1 b2 bk,其中b1輸出長度即可。輸入描述 input description 第一行,乙個整數n。第二行 n個整數 n 5000 輸出描述 out...
1576 最長嚴格上公升子串行
題目描述 description 給乙個陣列a1,a2 an,找到最長的上公升降子串行ab1輸出長度即可。輸入描述 input description 第一行,乙個整數n。第二行 n個整數 n 5000 輸出描述 output description 輸出k的極大值,即最長不下降子串行的長度 樣例輸...
1576 最長嚴格上公升子串行
時間限制 1 s 空間限制 256000 kb 題目等級 gold 給乙個陣列a1,a2 an,找到最長的上公升降子串行ab1 b2 bk,其中b1輸出長度即可。輸入描述 input description 第一行,乙個整數n。第二行 n個整數 n 5000 輸出描述 output descript...