- 0
- 0
- 约2.68千字
- 约 27页
- 2026-03-10 发布于广西
- 举报
第18课;学习目标;知识讲授;动态规划法;动态规划是一种处理问题的算法思想,而不是某种算法。动态规划常用来解决一些最优化的问题。这些问题主要有以下特征:
;课堂练习1;数字金字塔;#includebits/stdc++.h
usingnamespacestd;
inta[1001][1001];
intans,n;//ans存储最大值
voiddfs(intx,inty,intsum){//表示到达a[x][y]的值为sum
if(x==n)//对最后一行的所有结果求最大值ans
{
ans=max(sum,ans);
return;
}
dfs(x+1,y,sum+a[x+1][y]);
//到达正下方的值为sum+a[x+1][y]
dfs(x+1,y+1,sum+a[x+1][y+1]);
//到达右下方的值位sum+a[x+1][y+1]
}
;
intmain()
{
cinn;
for(inti=1;i=n;i++)
{
for(intj=1;j=i;j++)
cina[i][j];
}
dfs(1,1,a[1][1]);
coutans;
return0;
};问题建模;#includebits/stdc++.h
usingnamespacestd;
inta[1001][1001];
intdp[1001][1001];
//dp[i][j]表示从第n行出发到达a[i][j]点的最值
intans,n;
intdfs(intx,inty){
if(dp[x][y])returndp[x][y];//如果已经计算过dp[x][y],直接返回
if(x==n)dp[x][y]=a[x][y];//递归边界:第n行元素的值为a[i][j]本身
elsedp[x][y]=max(dfs(x+1,y),dfs(x+1,y+1))+a[x][y];
//递归计算dp[x][y]的值=下、右中的较大值+a[x][y]
returndp[x][y];
};
intmain()
{
cinn;
for(inti=1;i=n;i++)
{
for(intj=1;j=i;j++)
cina[i][j];
}
dfs(1,1);
coutdp[1][1];
return0;
};如何用动态规划处理问题;初始化边界条件;根据状态转移方程推出第4层的值;根据状态转移方程推出第3层的值;根据状态转移方程推出第2层的值;根据状态转移方程推出第1层的值;#includebits/stdc++.h
usingnamespacestd;
inta[1001][1001];
intdp[1001][1001],ans;
//dp[i][j]表示从第n行到a[i][j]的最大值
//dp[i][j]可以由dp[i+1][j],dp[i+1][j+1]的值推出
//dp[i][j]=a[i][j]+max(dp[i+1][j],dp[i+1][j+1])
intmain(){
intn;
cinn;
for(inti=1;i=n;i++){
for(intj=1;j=i;j++)cina[i][j];
}
for(inti=1;i=n;i++){
dp[n][i]=a[n][i];
}
//初始化边界条件;
for(inti=n-1;i=1;i--)
{//从第n-1行开始
for(intj=1;j=i;j++)
{//处理第i行的每一列
dp[i][j]=a[i][j]+max(dp[i+1][j],dp[i+1][j+1]);
}
}
coutdp[1][1];
return0;
};课堂练习;课堂练习1;#includebits/stdc++.h
usingnamespacestd;
inta[505],dp[505];
//dp[i]表示前i项中包含第i项的最长子序列
//初始状态dp[i]=1;
//dp[i]=max(dp[i],dp[j]+1)
/
您可能关注的文档
- C++编程《第001课 初识C++》教学设计.docx
- C++编程《第001课 初识C++》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学设计.docx
- C++编程《第005课 选择与分支(2)》教学课件.pptx
- C++编程《第005课 选择与分支(2)》教学设计.docx
原创力文档

文档评论(0)