/*
求最長不下降子串行(動態規劃)
狀態轉移方程:
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,給定...