動態規劃 入門練習1

2021-08-31 16:27:10 字數 635 閱讀 8370

現在1~q個時間段內有n(n<100)個工作,每個工作都有各自的開始時間start,結束時間end和工作所得錢p,工作時間有重疊 ,現問在這段時間內所得錢最多為多少?

輸入:

8

1 4 5

3 5 1

0 6 8

4 7 4

3 8 6

5 9 3

6 10 2

8 11 4

輸出:

13
#includeusing namespace std;

typedef structpage;

int n;//任務個數

page a[100];//方案陣列

int perv[100];//存放前乙個選擇方案

void perv_page(int n)//前面最近可以選擇哪個方案

}perv[i]=t; }}

/*int f(int i)*/

int value[100]=;//存放每次的最佳方案

int f(int i)//記憶化

int main() */

cout

}

動態規劃入門

1 用 dp 做的題大多數返回值是int boolean,求max min,不能打亂原來輸入順序。2 動態規劃有兩個重要定義,乙個叫 optimal substructure 另乙個叫 overlap subproblem 各種排序 tree 類問題中,都會用到 divide conquer 的思想...

動態規劃入門

大家可以看看這篇文章dp,哪個更容易理解就看哪個!一 動態規劃的定義 動態規劃程式設計是一種針對於解決最優化問題的一種途徑 一種方法,而不是一種特殊演算法,也就是說它沒有固定的模板。在動態規劃中,每走一步都要看看能不能最優,而且動態規劃最擅長的就是多階段問題!二 動態規劃的基本概和基本模型構成 1....

動態規劃入門

學動態規劃自然要從數字三角形開始起步,那麼我們就先從數字三角形開始。數字三角形題目 有乙個由非負整數組成的三角形,第一行只有乙個數,除了最下行之外的每個數的左下方和右下方各有乙個數,如下圖所示 3 24 10 1 4 3 2 20 從第一行的數開始,每次可以往下或往右下走一格,直到走到最下行,把沿途...