求最長不降子串行(動態規劃)

2021-10-03 12:31:09 字數 796 閱讀 4941

/*

求最長不下降子串行(動態規劃)

狀態轉移方程:

length[i]=1+length[j],j為data[i]>data[j]的情況下能使length[j]取到最大的值

初始情況length[1]=1; 且length[0]=0,這樣求出來的length[j]才可以取到0

*/#include

int data[15]

=;// 下標從1開始

int length[15]

;// dp[i]表示前i個元素的最長不降子串行的長度

int pre[15]

;// pre[i]表示與當前元素組成不降子串行的前乙個元素

int res[15]

;// 儲存結果

voiddp(

int n)

;int

main()

// 動態規劃求前n個數的最長不降子串行的長度

voiddp(

int n)

} length[i]

= length[k]+1

;// 狀態轉移

pre[i]

= k;}

max =0;

for(i =

1; i <=

15; i++)}

i = k;

while

(i !=0)

for(i = count; i >=

1; i--

)printf

("\n");

}

最長不降子串行 動態規劃

2008 4 8 最長不降子串行 小明晚上回家後,和爸爸玩這樣的乙個遊戲 給出n個 0一 動態規劃演算法 本題是比較簡單的動態規劃,請理解好遞推的過程。具體方法是對於陣列a,另設一陣列b,將b陣列內元素全置1,表示最短子串行長度為1。從陣列a左到右乙個個判斷,每判斷乙個,則從這個元素向右尋找,找到比...

求最長回文子串行(動態規劃)

include include includeusing namespace std define maxn 1000 動態規劃求解最長回文子串行,時間複雜度為o n 2 int lpsdp char str,int n return dp 0 n 1 返回字串str 0.n 1 的最長回文子串行長...

求最長不降子串行

試題描述 給定乙個整數序列a1 a2 an,求這個序列中的乙個子串行 不一定連續 使得這個序列中的元素嚴格遞增,並且這個序列最長。輸入第一行,乙個整數n。第二行,n個整數,a1 a2.an。輸出一行,乙個整數,表示你所求的最大長度。輸入示例 41 3 2 4 輸出示例 3其他說明 n 1000,給定...