已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
. . . .算法设计分析实验报告回溯算法Problem A、0-1背包问题描述: 需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi 。对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高。初始化的数组事实上就是在没有任何物品可以放入背包时的合法状态。如果要求背包恰好装满,那么此时只有容量为0的背包可能被价值为0的nothing“恰好装满”,其它容量的背包均没有合法的解,属于未定义的状态,它们的值就都应该是-了。如果背包并非必须被装满,那么任何容量的背包都有一个合法解“什么都不装”,这个解的价值为0,所以初始时状态的值也就全部为0了。void checkmax(int n,int c)int i, weight=0, value=0;for(i=0;in;i+)if(ai=1)weight = weight + wi;value = value + vi;if(weightmax) max=value;Problem B、装载问题描述: 有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。此题跟上题有异曲同工之处!其核心代码如下!void Sesearch(int m,int r_weight,int cw)int i=0;if(m=n)if(cw=bestcw&cw=c1)bestcw=cw;success=1;cw_weight=0;for(i=0;in;+i)if(ai)cw_weight+=bi;elseam=1;if(cw+bmbestcw)Sesearch(m+1,r_weight-bm+1,cw);Problem C、堡垒问题描述: 城堡是一个44的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒。城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉。问对于给定的一种状态,最多能够修建几个堡垒。这个问题上课没听,下来问的同学,还是没搞的太明白!代码是找同学帮忙修改的!核心问题:void Sesearch(int m,int cw,int rw)if(m=ROW*COL)if(cwbestcw)bestcw=cw;elseif(am/COLm%ROW=2)Sesearch(m+1,cw,rw-1);elseif(canplace(m)am/COLm%COL=1;Sesearch(m+1,cw+1,rw-1);am/COLm%ROW=0;if(cw+rwbestcw)Sesearch(m+1,cw,rw-1);Problem D、8皇后问题描述: 输出8皇后问题所有结果。输出: 每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,A表示皇后,.表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。八皇后问题还是蛮有意思的,在听过老师上课讲解后,有了思路!但是c语言学的不好,有了思路还是花了不少时间来些代码!在同学的帮助下,完善了代码!核心算法:void sesearch(int m, int a8)int i;if(m=8)if(n3)output(a);+n;elsefor(i=0;i=0)&(row=0)&(col20)&arowcol=0)return 1;else return 0;int Search(int row,int col,int x,int y)int r,c;if(row=x)&(col=y)&arowcol=0)return 1;arowcol=1;r=row; /左c=col-1;if(Canplace(r,c) if(Search(r,c,x,y)return 1;r=row+1; /下c=col;if(Canplace(r,c)if(Search(r,c,x,y)return 1;r=row; /右c=col+1;if(Canplace(r,c)if(Search(r,c,x,y)return 1;r=row-1; /上c=col;if(Canplace(r,c)if(Search(r,c,x,y)return 1;int main()int i=0,j=0,n=0;int result11=0;scanf(%d,&n);while(in)Putin();resulti=Search(x0,y0,x,y);i+;for(j=0;j=1)printf(Yesn);elseprintf(Non);return 0;宁可累死在路上,也不能闲死在家里!宁可去碰壁,也不能面壁。是狼就要练好牙,是羊就要练好腿。什么是奋斗?奋斗就是每天很难,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期末个人工作总结(13篇)
- 内蒙古乌拉特前旗乌拉特前旗第三中学2025-2026学年七年级上学期12月教学质量检测语文试题(无答案)
- 2026年长春医学高等专科学校单招职业适应性测试模拟试题及答案解析
- 2026年海南职业技术学院单招职业适应性测试模拟试题及答案解析
- 2026年上海师范大学天华学院单招职业适应性测试模拟试题及答案解析
- 2026年滁州城市职业学院单招职业适应性测试模拟试题及答案解析
- 2026年长沙职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年广东工贸职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年辽宁经济管理干部学院单招职业适应性测试模拟试题及答案解析
- 医疗护理质量改进策略
- 庙坝镇规划方案公示
- 生物样本库建设方案
- 叉车考试题库
- 《机修工基础培训》课件
- 口腔正畸学课件
- 铸件项目可行性研究报告
- 一次调频综合指标计算及考核度量方法
- 《杀死一只知更鸟》读书分享PPT
- 成功的三大要素
- GB/T 41932-2022塑料断裂韧性(GIC和KIC)的测定线弹性断裂力学(LEFM)法
- GB/T 7253-2019标称电压高于1 000 V的架空线路绝缘子交流系统用瓷或玻璃绝缘子元件盘形悬式绝缘子元件的特性
评论
0/150
提交评论