- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
方格取数
方格取数 设有n*n的方格图(N≤8),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例): 向右 A 1 2 3 4 5 6 7 8 1 0 0 0 0 0 0 0 0 2 0 0 13 0 0 6 0 0 3 0 0 0 0 7 0 0 0 4 0 0 0 14 0 0 0 0 5 0 21 0 0 0 4 0 0 向 6 0 0 15 0 0 0 0 0 下 7 0 14 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 某人从图的左上角的A点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,它可以取走方格中的数(取走后的方格中将变为数字0)。此人从A点到B点共走两次,试找出2条这样的路径,使得取得的数之和最大。 输入:输入的第一行为一个整数N(表示N*N的方格图),接下来的每行右三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的0表示输入结束。 输出:只需输出一个整数,表示2条路径上取得的最大的和 分析:我们对这道题并不陌生。如果求一条数和最大的路径,读者自然会想到动态程序设计方法。现在的问题是,要找出这样的两条路径,是否也可以采用动态程序设计方法呢?回答是可以的。 1、状态的设计 对于本题来说,状态的选定和存储对整个问题的处理起了决定性的作用。 我们从(1,1)出发,每走一步作为一个阶段,则可以分成2*n-1个阶段: 第一个阶段,两条路径从(1,1)出发; 第二个阶段,两条路径可达(2,1)和(1,2); 第三个阶段,两条路径可达的位置集合为(3,1)、(2,2)和(1,3); ………………………… 第2*n-1个阶段,两条路径汇聚(n,n); 在第k(1≤k≤2*n-1)个阶段,两条路径的终端坐标(x1,y1)(x2,y2 如果我们将两条路径走第i步的所有可能位置定义为当前阶段的状态的话,面对的问题就是如何存储状态了。方格取数问题的状态数目十分庞大,每一个位置是两维的,且又是求两条最佳路径,这就要求在存储上必须做一定的优化后才有可能实现算法的程序化。主要的优化就是:舍弃一切不必要的存储量。为此,我们取位置中的x坐标(x1,x2)作状态,其中 (1≤x1≤k)and(x1{1‥n})and(1≤x2≤k)and(x2{1‥n}) 直接由x坐标计算对应的y坐标: (y1=k+1-x1)and(y1{1‥n})and(y2=k+1-x2)and(y2{1‥n}) 2、状态转移方程 设两条路径在k阶段的状态为(x1,x2)。由(y1=k+1-x1)∧(y1{1..n})得出第一条路径的坐标为(x1,y1);由(y2=k+1-x2)∧(y2{1..n})得出第二条路径的坐标为(x2,y2)。假设在k-1阶段,两条路径的状态为(x1’,x2’)且(x1’,x2’)位于(x1,x2)状态的左邻或下邻位置。因此我们设两条路径的延伸方向为d1和d2:di=0,表明第i条路径由(xi’,yi’)向右延伸至(xi,yi);di=1,表明第i条路径由(xi’,yi’)向下延伸至(xi,yi)(1≤i≤2)。显然(x1’= x2’)∧(d1= d2),表明两条路径重合,同时取走了(x1’,y1’)和(x1,y1)中的数,这种取法当然不可能得到最大数和的。 分析两种可能: ⑴若x1=x2,x1状态,可取走(x1,y1)中的数(如下图); x1’(x2’)→x1=x2 ↑ x2’(x1’) ⑵若x1≠x2,则在k阶段,第一条路径由x1’状态延伸至x1状态,第二条路径由x2’状态延伸至x2状态,两条路径可分别取走(x1,y1)和(x2,y2(如下图); 设 f[k,x1,x2]—在第k阶段,两条路径分别行至x1状态和x2状态的最大数和。显然 k=1时,f[1,1,1]=0; k2时,f[k,x1,x2]=max{f[k-1, x1’x2’]+(x1,y1)的数字▏x1=x2 f[k-1, x1’x2’]+(x1,y1)的数字+(x2,y2)的数字▏x1≠x2} 1≤k≤2*n-1,x1’x1的状态集合,x2’可达x2的状态集合,(x1’≠x2’)∨(d1≠d2);
您可能关注的文档
最近下载
- 鱼粉的危险性鉴定 .pdf VIP
- 2024年贵州贵州省旅游产业发展集团有限公司招聘真题附答案详解(模拟题).docx VIP
- 2025年《提振消费专项行动方案》解读学习PPT课件.pdf
- 2024年贵州贵州省旅游产业发展集团有限公司招聘真题及答案详解(全优).docx VIP
- 学堂在线 工程伦理2.0 章节测试答案.docx VIP
- 中国华能集团公司《电力安全工作规程》(电气部分).pdf VIP
- 17GL603 综合管廊监控及报警系统设计与施工.docx VIP
- 职业生涯规划人物访谈报告.pdf VIP
- 四川大学大学生心理健康期末复习资料.doc VIP
- 经典儿歌歌词100首.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)