演算法 動態規劃

2021-10-12 16:29:17 字數 3269 閱讀 1139

給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。

要求演算法的時間複雜度為o(n)。

輸入格式:

輸入有兩行:

第一行是n值(1<=n<=10000);

第二行是n個整數。

輸出格式:

輸出最大子段和。

輸入樣例:

在這裡給出一組輸入。例如:

6

-2 11 -4 13 -5 -2

輸出樣例:在這裡給出相應的輸出。例如:

20
#include

using

namespace std;

intmain()

cout << bests << endl;

return0;

}

給定n(n<=100)種物品和乙個揹包。物品i的重量是wi,價值為vi,揹包的容量為c(c<=1000)。問:應如何選擇裝入揹包中的物品,使得裝入揹包中物品的總價值最大? 在選擇裝入揹包的物品時,對每種物品i只有兩個選擇:裝入或不裝入。不能將物品i裝入多次,也不能只裝入部分物品i。

輸入格式:

共有n+1行輸入: 第一行為n值和c值,表示n件物品和揹包容量c; 接下來的n行,每行有兩個資料,分別表示第i(1≤i≤n)件物品的重量和價值。

輸出格式:

輸出裝入揹包中物品的最大總價值。

輸入樣例:

在這裡給出一組輸入。例如:

5 10

2 62 3

6 55 4

4 6

輸出樣例:在這裡給出相應的輸出。例如:

15
#include

using

namespace std;

int n,c,w[

105]

,v[105

],dp[

105]

[1005

],x[

105]=;

int i,j;

void

bag(

)void

print()

}if(dp[1]

[c]>=cv)

cout << dp[1]

[c];

}int

main()

bag();

print()

;return0;

}

乙個字串,如果從左到右讀和從右到左讀是完全一樣的,比如"aba",我們稱其為回文串。現在給你乙個字串,可在任意位置新增字元,求最少新增幾個字元,才能使其變成乙個回文串。

輸入格式:

任意給定的乙個字串,其長度不超過1000.

輸出格式:

能變成回文串所需新增的最少字元數。

輸入樣例:

在這裡給出一組輸入。例如:

ab3bd
abb
輸出樣例:在這裡給出相應的輸出。例如:

輸入樣例:在這裡給出一組輸入。例如:

5

30 35 15 5 10 20

輸出樣例:在這裡給出相應的輸出。例如:

11875
#include

using

namespace std;

#define n 1000

int p[n]

;int m[n]

[n];

int n;

intmaxchain()

}}return m[1]

[n];

}int

main()

小明有一張藏寶圖,上面有m*n個房間,每個房間裡面都有乙個有一定價值的寶物,小明只能從左上角的房間進入收集寶物,且每次只能向右邊或向下邊的房間繼續尋寶,最終只能從最右下的房間出來。請你幫小明計算下他最多可以收集到多少價值的寶物?

輸入格式:

輸入第一行給出兩個正整數m,n(1=輸出格式:

輸出收集到的最大價值v,題目保證v<10^9。

輸入樣例:

4 4

1 18 9 3

7 10 6 12

5 13 4 15

2 11 8 16

輸出樣例:

78
#include

using

namespace std;

int dp[

2005][

2005];

intmain()

cout << dp[m]

[n];

return0;

}

演算法 動態規劃

動態規劃 把多階段過程轉化為一系列單階段問題,利用各階段之間的關係,逐個求解 演算法例子 1.鋼條切割 serling 公司購買長鋼條,將其切割為短鋼條,切割工序假設沒有成本支出,公司管理層希望確定最佳的切割方案。假設serling公司 一段長度為i英吋的鋼條的 為pi。鋼條的長度為整英吋,下表給出...

演算法 動態規劃

1 問題具有最優子結構性質。如果問題的最優解所包含的子問題的解也是最優的,我們就稱該問題具有最優子結構性質。比如說在揹包問題中,最高總價值 max 選擇不放該物品時達到的總價值,決定放該物品時揹包剩餘容量能達到的最大價值 該物品價值 顯然,最高總價值的解一定包含 選擇不放該物品時達到的總價值 和 決...

演算法 動態規劃

動態規劃的定義 動態規劃是運籌學的乙個分支,是求解決策過程的最優化的數學方法。20世紀50年代初美國數學家r.e.bellman等人在研究多階段決策過程的優化問題時,提出了著名的最優化原理,把多階段過程轉化為一系列單階段問題,利用各階段之間的關係,逐個求解,創立了解決這類過程優化問題的新方法 動態規...