ACM公選課7 8 DP演算法

2021-10-06 11:37:15 字數 3407 閱讀 8712

動態規劃法設計演算法一般分成三個階段:

(1)分段:將原問題分解為若干個相互重疊的子問題;

(2)分析:分析問題是否滿足最優性原理,找出動態規劃函式的遞推式;

(3)求解:利用遞推式自底向上計算,實現動態規劃過程。

動態規劃法利用問題的最優性原理,以自底向上的方式從子問題的最優解逐步構造出整個問題的最優解。

dp 就是要避免重複計算!

穿過街道

#include

using

namespace std;

int f[

100]

[100];

intgetf

(int x,

int y)

intmain()

return0;

}

數字三角形

#include

using

namespace std;

intmain()

int tmp=0;

for(

int k=

1; k<=n; k++)if

(tmp<=inp[n]

[k])

tmp=inp[n]

[k];

cout<

}return0;

}

function run fun

#include

using

namespace std;

long

long data[21]

[21][

21];long

long

inf(

int x,

int y,

int z)

else

return data[x]

[y][z];}

}int

main()

return0;

}

recaman sequence

#include

using

namespace std;

#define size 500000

int data[size+1]

;bool inp[size*10]

;int

main()

while

(cin>>n&&n!=-1

)return0;

}

滑雪

#include

using

namespace std;

int data[

101]

[101];

int inp[

101]

[101];

int m,n;

intf

(int i,

int j)

intmain()

return0;

}

命運-dp

#include

using

namespace std;

const

int maxn =25;

const

int maxm =

1000

;int dp[maxn]

[maxm]

,a[maxn]

[maxm]

,u[maxn]

[maxm]

;int n,m;

intdfs

(int x,

int y)

intmain()

return0;

}

max sum

#include

using

namespace std;

intmain()

if(sum<0)

}printf

("case %lld:\n%lld %lld %lld\n"

,q,summax,st,en);if

(q!=t)

printf

("\n");

}return0;

}

最長上公升子串行

#include

using

namespace std;

int data[

1000];

int dp[

1000];

intmain()

} dp[i]

=max+1;

} max=0;

for(

int i=

0; i

(max

) max=dp[i]

; cout<

}return0;

}

來來的正方形

#include

using

namespace std;

#define max 500

int matrix[max]

[max]

;int

min(

int a,

int b)

intmain()

printf

("%d\n"

, max);}

return0;

}

中國象棋

#include

#include

//用scanf(),printf()輸入輸出加快速度

#include

//cstring內有memset()函式

using

namespace std;

int a[9]

=;//陣列a儲存馬控制的橫座標範圍

int b[9]

=;//陣列b儲存馬控制的縱座標範圍,注意相同下標的a,b之間有一定的對應關係,即除了(0,0)外|a|與|b|乙個為1,另乙個為2

int n,m,x,y,i,j;

int map[21]

[21];

//map[i][j]表示地圖上(i,j)這個點是否是馬的控制點

long

long tripnum[21]

[21];

//tripnum[i][j]表示從(0,0)到(i,j)卒合法的行走路線總數

intmain()

return0;

}

公選課選課系統

menu 功能選單展示 userdaoimpl 登入註冊操作,提取檔案資料以及將資料存入檔案 courselistdaoimpl 將所有課程存入檔案以及從檔案中獲取所有課程資訊,對於課程的增刪以及對於課程資訊的修改 selectedcourselistdaoimpl 將所有已選擇課程存入檔案以及從檔...

面對物件設計大作業第二階段 公選課選課系統

通過功能調查可以初步確定,系統需要如 學期 課程名稱 課程類別 任課老師 學分 學時 上課時間地點等屬性,選擇的多個課程可用列表儲存,左上方標識使用者登入狀態。系統包含使用者登入 檢視所有課程資訊 新增課程 刪除課程和檢視使用者公選課資訊5個功能,用於教師統計學生的選修課選課情況。uml類圖 cou...

acm之遞迴題目7

hdu 2006 10 acm contest的頒獎晚會隆重開始了!為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條加入完畢,每人從箱中取乙個字條 最後,如果取得的字條上寫的就是自己的...