栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二维未优化的动态规划的理解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二维未优化的动态规划的理解

  动态规划的实质就是使用分治的思想,将当前的大问题分割成一个一个小问题来解决,最后用递推来实现每种问题之间的联系。未优化的动态规划就是使用二维数组来存储每种状态(按照我目前学的进度是这样,不能绝对的说)。

  本质是对每一个小问题求出最优解,并且用递推的思想的来这种最优解的状态送到下一个问题,使得下一个问题能在保持上一个问题的最优解的情况下求当前问题的最优解。

  例如:洛谷P1216(这题也是动态规划的入门题,易于理解)

  上代码:

 1 #include
 2 using namespace std;
 3 const int N=1010;
 4 int dp[N][N];
 5 int main()
 6 {
 7     int n;
 8     cin>>n;
 9     for(int i=1;i<=n;i++)
10         for(int j=1;j<=i;j++)
11             cin>>dp[i][j];
12     for(int i=1;i<=n;i++)
13         for(int j=1;j<=i;j++)
14             dp[i][j]+=max(dp[i-1][j],dp[i-1][j-1]);
15     int ans=0;
16     for(int j=1;j<=n;j++)
17         ans=max(ans,dp[n][j]);
18     cout<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/769330.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号