算法设计与分析-动态规划实验_第1页
算法设计与分析-动态规划实验_第2页
算法设计与分析-动态规划实验_第3页
算法设计与分析-动态规划实验_第4页
算法设计与分析-动态规划实验_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法设计与分析实验报告实验二 递归与分治策略报告书姓名指导教师学号日 期班级实验内容1)都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大 把大把的馅饼。这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在 了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧 都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽 然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移 动不超过一米的范围内接住坠落的馅饼。为了使问题简化,假设在接下来的一段时 间里,馅饼都掉落在0-10这11个位置。开始时ga

2、meboy站在5这个位置,因此在 第一秒,他只能接到4,5,6这三个位置中期中一个位置上的馅饼。问gameboy最多 可能接到多少个馅饼?(假设他的背包可以容纳无穷多个馅饼)请自行设定输入输 出和测试数据。实验目的1)了解动态规划的用法。实验过程和步骤Module 1:免费馅饼Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 59327 Accepted Submission(s): 20813Problem Description都说天上不

3、会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把 大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背 包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆 在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝, 每秒种只有在移动不超过一米的范围内接住坠落的馅饼。现在给这条小径如图标上坐标:I I I I I * I I I I IU12345 El78910为了使问题简化,假设在接下来的一段时间里,馅饼都掉

4、落在0-10这11个位置。开始时 gameboy站在5这个位置,因此在第一秒,他只能接到4,5,6这三个位置中其中一个位置 上的馅饼。问gameboy最多可能接到多少个馅饼?(假设他的背包可以容纳无穷多个馅 饼)Input输入数据有多组。每组数据的第一行为以正整数n(0n100000),表示有n个馅饼掉 在这条小径上。在结下来的n行中,每行有两个整数x,T(0T100000),表示在第T秒有一 个馅饼掉在x点上。同一秒钟在同一点上可能掉下多个馅饼。n=0时输入结束。Output每一组输入数据对应一行输出。输出一个整数m,表示gameboy最多可能接到m个 馅饼。提示:本题的输入数据量比较大,建

5、议用scanf读入,用cin可能会超时。Sample Input614 1 TOC o 1-5 h z 12230Sample Output4代码:#includecstdio”#includecstring”#includealgorithm”using namespace std;#define inf 100009#define loop(x,y,z) for(x=y;xz;x+)#define INF 99999999#define ll long longint n,maxTime;int ans;/输出答案int rollcakeinf15;/rollcakeij表示i秒j位置可以

6、收集到的馅饼的个 数int dpinf15;/dij表示i秒如果站在j位置可以在i秒前,最多收集到 dij个馅饼void init()memset(rollcake,0,sizeof rollcake);memset(dp,0,sizeof dp);ans=0;maxTime=0;/输入的最大时间bool isIllegal(int i) /判断越界if(i10)return false;return true;int max(int a,int b,int c)a=ab?a:b;return ac?a:c;void calAns()/递推int i,j;dp14=rollcake15;dp1

7、5=rollcake15;dp16=rollcake15;loop(i,2,maxTime+1)loop(j,0,11)/不会走到0点和10点的,但是可以走dpij=dpi-1j;if(isIllegal(j-1)&dpi-1j-1dpij)dpij=dpi-1j-1;if(isIllegal(j+1)&dpi-1j+1dpij)dpij=dpi-1j+1;dpij+=rollcakeij;loop(i,0,11)if(dpmaxTimeians)ans=dpmaxTimei;int main()int i,j;int pos,time;while(scanf(%d”,&n)if(n=0)break;init();/初始化loop(i,0,n)/输入scanf(%d%d”,&pos,&time);rollcaketimepos+;if(timemaxTime)maxTi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论