电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PDF文档下载
分享到微信 分享到微博 分享到QQ空间

计算概论 动态规划

  • 资源ID:45693764       资源大小:219.41KB        全文页数:32页
  • 资源格式: PDF        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

计算概论 动态规划

计算概论计算概论第十五讲 动态规划内容提要内容提要?为什么要用动态规划的方法?递归程序转化为动态规划程序?例题树形递归树形递归?例1:POJ 2753 Fibonacci数列?1,1,f(n-1)+f(n-2), int f(int n) if(n=0 | n=1) return 1; return f(n-1)+f(n-2); f(5)f(3)f(2)f(1)f(2)f(4)f(3)f(0) f(1)f(0)f(2)f(1) f(1)f(0)f(1)11001010冗余计算冗余计算?POJ 2753 Fibonacci数列 计算过程中存在冗余计算,为了出去冗余计算 可以从已知条件开始计算,并记录计算过程中 的中间结果。?POJ 2753 Fibonacci数列 int fn+1; f1=f2=1; int I; for(i=3;i 动态规划动态规划的实质?动态规划的实质就是动态规划的实质就是就是将用搜索解决时会重复计算的值,算好一次后就存 起来,以后不必重新计算,用空间换时间。就是将用搜索解决时会重复计算的值,算好一次后就存 起来,以后不必重新计算,用空间换时间。动态规划动态规划?例2 POJ 1163 数字三角形在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径 上所经过的数字之和最大。路径上的每一步都只能往左下或右 下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100 数字为 0 - 997 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输入格式:5/三角形行数。下面是三角形 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 要求输出最大和?算法一:递归的想法 设f(i,j) 为三角形上从点(i,j)出发向下走的最长路 经,则 f(i,j) = max(f(i+1,j), f(i+1,j+1) 要输出的就是f(0,0)即从最上面一点出发的最长 路经。?代码如下:#include #define MAX 101 int triangleMAXMAX; int n; int longestPath(int i, int j); void main() int i,j; cin >> n; for(i=0;i> triangleij; cout #define MAX 101 int triangleMAXMAX, n; void main() int i,j; cin >> n; for(i=0;i> triangleij; for(i=n-2;i>=0;i-)for(j=0;j #include #define MAX 1000 char str1MAX, str21000; int commonstr(int,int); void main() while(cin >> str1 >> str2) int len1=strlen(str1); int len2=strlen(str2); cout tmp2) return tmp1; else return tmp2; 超时!?算法二:动态规划 从str1和str2的第一个字符开始考虑; int commonLengthMAXMAX; 用一个二维数组记录str1的前i个字符与str2中的前j个 字符的最大公共子串长度?设立初值:comLen 00MAX=0;comLen 0MAX0=0; 表示两个字符串中有一个没有参与比较时,最大公 共子串长度为?递推:if(stri=strj) comLen ij =1+ comLen i-1j-1; else comLenij = max(comLeni-1j,comLenij- 1);#include #include #define MAX 1000 char str1MAX,str2MAX; int comMAXMAX, i, j; void main() while(cin >> str1 >> str2) int len1=strlen(str1); int len2=strlen(str2); for(i=0;icomij-1) comij=comi-1j; else comij=comij-1; /else /forcout void main() int n,i,j,k,count40=0; cin >> n; int numbers21; for(i=0;i> numbersi; for(i=1;i0; j>>=1,k-) if(j if(sum=40) count40+; cout #include int N; int v30; int WayNumber(int nDone, int w) int nResult = 0; if( w = 0 ) return 1; for( int i = nDone; i > N; int i; for( i = 0;i > vi; cout #include const int MaxN = 21; int N; int v30; int WayNumberMaxN41; main() int i; cin >> N; for( i = 0;i > vi; memset( WayNumber,0,sizeof(WayNumber); for( i = 0; i = 0; i - ) for( int j = 1; j #define MAX 41 void main() int n,i,j,input; int sumMAX; for(i=0;i> n; for(i=0;i> input; for(j=40;j>=1;j-) if(sumj>0 suminput+; cout << sum40 << endl;

注意事项

本文(计算概论 动态规划)为本站会员(ji****72)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.