動態規劃演算法

2021-09-13 02:16:19 字數 766 閱讀 4500

兩種水果雜交出一種新水果,現在給新水果取名,要求這個名字中包含以前兩種水果的字母,且名字盡量短,即:以前的水果名字arr1、arr2是新水果名arr的子串行,使用動態規劃的思想設計演算法得到新水果名arr。

輸入格式:

以空格分開兩個水果的名字

輸出格式:

新水果的名字

輸入樣例:

輸出樣例:

#include

#include

using namespace std;

int lsc[

1000][

1000];

int path[

1000][

1000];

char str1[

1000

],str2[

1000];

void

getlsc()

else

if(lsc[i+1]

[j]>=lsc[i]

[j+1])

else}}

}void

outputpath

(int m,

int n)

if(n==0)

if(path[m]

[n]==1)

else

if(path[m]

[n]==2)

else

if(path[m]

[n]==3)

}int

main()

動態規劃演算法

一 動態規劃演算法原理 將待求解的問題分解成若干個相互聯絡的子問題,先求解子問題,然後從這些子問題的解得到原問題的解 對於重複出現的子問題,只在第一次遇到的時候對它進行求解,並把答案儲存起來。了不去求解相同的子問題,引入乙個陣列,把所有子問題的解存於該陣列中,這就是動態規劃所採用的基本方法。動態規劃...

動態規劃演算法

動態規劃 通過把原問題分解為相對簡單的子問題來求解複雜問題。動態規劃常常適用於有重疊子問題和最優子結構性質的問題。演算法總體思想 演算法的基本步驟 演算法的基本要素 最優子結構 重疊子問題 備忘錄方法 問題描述 子串行 公共子串行 最長公共子串行 lcs 問題 問題分析 動態規劃求解lcs問題 最長...

動態規劃演算法

動態規劃演算法的思路 動態規劃法即 dynamic programming method dp 是系統分析中的種常用方法。動態規劃法是20世紀50年代由貝爾曼 r.bellman 等人提出的,用來解決多階段決策過程問題的一種最優化方法。多階段決策過程是指把研究問題分成若干個相互聯絡的階段,由每個階段...