下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与技术系上机实验报告课程名称:算法设计与分析班级:计科081实验日期:2010-姓名:学号:指导教师:实验序号:五实验成绩:一、实验名称广度优先搜索-抓住那头奶牛
二、实验目的及要求1、学会使用在线测评的算法题目评分系统;2、通过直观的应用问题,加深对广度优先搜索算法的理解;三、实验环境任一C或C++编写调试工具,北京大学ICPC在线测评系统POJ四、实验内容1、注册POJ账号,找到题号为3278的题目-抓住那头奶牛
;2、进行简单测试,完成之后提交到POJ系统。五、算法描述及实验步骤描述约翰有一头奶牛逃跑了,约翰要去抓住它。约翰在数轴上的位置N(0<=N<=100,100),奶牛在数轴上的位置K(0<=K<=100,100),约翰有两种移动的方式:向前或者向后一步,即X到X-1或者X+1,花费1分钟;传送到两倍距离位置,即X到2*X,花费1分钟;假设奶牛不知道自己正被抓捕,不会移动。请设计程序求出约翰需要的最少分钟数。输入1行,分别是约翰的位置N和奶牛的位置K。输出1行,所需要的最少分钟数。例子输入517
例子输出
4最短路径为5-4-8-16-17,共需4分钟。实验步骤:1、核心代码:while(!b.empty()){ y=b.front(); b.pop(); if(y==-1){x++;b.push(-1);y=b.front();b.pop();} a[y]=1; if(y>0&&a[y-1]==0){ b.push(y-1); if(y-1==k)break; a[y-1]=1;} if(a[y+1]==0&&y<k){ b.push(y+1); if(y+1==k)break; a[y+1]=1;} if(a[y*2]==0&&y<k&&y<50001){ b.push(2*y); if(2*y==k)break; a[2*y]=1;} }2、算法框架(流程图、纯文字语言、有注释的关键C代码均可)先建立队列,令队首为-1,队尾为约翰的位置N,开始搜索队列。从队首取出一个数,若为-1,让分钟数加1,并把-1放到队尾;若不为-1,则计算其加1减1及乘二的结果分别放到队尾,取下一个数,重复上述步骤,直到出现结果K。退出循环,输出分钟数。3、算法复杂度不会……调试过程及实验结果总结这个程序由于一直在做广度扩展,生成的子项非常多,需要很大的存储空间,找了很久终于找到最佳值。队列是一种动态存储结构,优点是长短随意,按需分配,缺点是只能访问队首和队尾。附录#include<iostream>#include<queue>usingnamespacestd;intmain(){ longintx=0,n,k,y,a[200000]={0}; queue<int>b; cin>>n>>k; if(n<0||k<0)return0; if(n>100000||k>100000)return0; if(n==k){cout<<0<<endl;return0;} if(n>k){cout<<n-k<<endl;return0;} b.push(-1); b.push(n); a[n]=1; while(!b.empty()){ y=b.front(); b.pop(); if(y==-1){x++;b.push(-1);y=b.front();b.pop();} a[y]=1; if(y>0&&a[y-1]==0){ b.push(y-1); if(y-1==k)break; a[y-1]=1;} if(a[y+1]==0&&y<k){ b.push(y+1); if(y+1==k)break; a[y+1]=1;} if(a[y*2]==0&&y<k&&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于毕业学生实习报告四篇
- 经股肱桡尺动脉介入治疗对比-袁晋青
- 北京小学科学教师学年工作总结大全
- 儿童临时监护协议书(2篇)
- 办公场地出租合同模板
- 深圳商铺租赁合同书
- 赠送别克商务轿车协议书
- 厂房租赁协议合同书范本
- 扬州地下停车位出租协议
- 八年级道德与法治下册第二单元理解权利义务第四课公民义务第2框依法履行义务教案新人教版
- 2024年黑龙江农业工程职业学院单招职业适应性测试题库
- 企业法律顾问详细流程
- 云数据中心建设项目可行性研究报告
- 《新生儿视网膜动静脉管径比的形态学分析及相关性研究》
- 无重大疾病隐瞒保证书
- 2024年春概率论与数理统计学习通超星期末考试答案章节答案2024年
- 企业形象设计(CIS)战略策划及实施计划书
- 2023-2024学年广西桂林市高二(上)期末数学试卷(含答案)
- 国家职业技术技能标准 6-31-01-09 工程机械维修工(堆场作业机械维修工)人社厅发202226号
- DB11∕T 1077-2020 建筑垃圾运输车辆标识、监控和密闭技术要求
- GB/T 19963.2-2024风电场接入电力系统技术规定第2部分:海上风电
评论
0/150
提交评论