【驻油点】一辆重型卡车欲穿过1000公里的沙漠,卡车耗油为1升/公里,卡车总载油能力为500公升。显然卡车一次是过不了沙漠的。因此司机必须设法在沿途建立几个贮油点,使卡车能顺利穿越沙漠,试问司机如何建
算法描述
从贮油点i向贮油点i+1倒推的策略是,卡车在点i和点i+1间往返若干次。卡车每次返回i+1处时正好耗尽500公升汽油,而每次从i+1出发时又必须装足500公升汽油。两点之间的距离必须满足在耗油最少的条件下使i点贮足i500分升汽油的要求(0<=i<=n-1)。具体地讲,第一个贮油点i=1应距终点i=0处500km且在该处贮藏500公升汽油,这样才能保证卡车能由i=1处到达终点i=0处,这就是说dis[1]=500oil[1]=500;为了在i=1处贮藏500公升汽油,卡车至少从i=2处开两趟满载油的车至i=1处。所以i=2处至少贮有2500公升汽油,即oil[2]=5002=1000。另外,再加上从i=1返回至i=2处的一趟空载,合计往返3次。三次往返路程的耗油量按最省要求只能为500公升。即d12=500/3kmdis[2]=dis[1]+d12=dis[1]+500/3
为了在i=2处贮存1000公升汽油,卡车至少从i=3处开三趟满载油的车至i=2处。报以i=3处至少贮有3500公升汽油,即oil[3]=500*3=1500。加上i=2至i=3处的二趟返程空车,合计5次。路途耗油量也应为500公升,即d23=500/5,dis[3]=dis[2]+d23=dis[2]+500/5
代码
#include<stdio.h>
voidmain()
{int k;
floatd,d1;
float oil[10],dis[10];
inti;printf(“NO.distance(k.m.)toil(l.)n”);
k=1;d=500;
dis[1]=500;
oil[1]=500;
do{
k=k+1;
d=d+500/(2k-1);
dis[k]=d;
oil[k]=oil[k-1]+500;
}while(!(d>=1000));
dis[k]=1000;
d1=1000-dis[k-1];
oil[k]=d1(2*k+1)+oil[k-1];
for(i=0;i<k;i++)
printf("%d%f%f\n",i,1000-dis[k-i],oil[k-i]);}
【驻油点】一辆重型卡车欲穿过1000公里的沙漠,卡车耗油为1升/公里,卡车总载油能力为500公升。显然卡车一次是过不了沙漠的。因此司机必须设法在沿途建立几个贮油点,使卡车能顺利穿越沙漠,试问司机如何建相关推荐
- 汽车穿越沙漠的算法问题【python】
一辆吉普车来到1000km宽的沙漠边沿.吉普车的耗油量为1L/km,总装油量为500L.显然,吉普车必须用自身油箱中的油在沙漠中设几个临时 加油点,否则是通不过沙漠的.假设在沙漠边沿有充足的汽油可供使 ...
- java卡车过沙漠问题_汽车最少油耗穿越沙漠问题(Java源码)
例题: 一辆吉普车穿越1000km的沙漠,吉普车的总装油量为500加仑,耗油率为1加仑/km.由于沙漠中没有油库,必须先使用这辆车在沙漠中建立临时的油库(起点处吉普车满油).若吉普车用最少的耗油量穿越 ...
- FZU 1076 穿越沙漠(逆推建模)(数学)
穿越沙漠 Problem Description 一辆吉普车来到x公里宽的沙漠边沿A点,吉普车的耗油量为1升/公里,总装油量为500升.通常,吉普车必须用自身油箱中的油在沙漠中设置若干个临时储油点,才 ...
- 算法 穿越沙漠问题(递推法)
问题描述 一辆吉普车来到1000km宽的沙漠边沿.吉普车的耗油量为1L/km,总装油量为500L.显然,吉普车必须用自身油箱中的油在沙漠中设几个临时 加油点,否则是通不过沙漠的.假设在沙漠边沿有充足的 ...
- 算法之穿越沙漠、狱吏问题
一.沙漠问题 1.问题描述 一辆吉普车来到1000km宽的沙漠边沿.吉普车的耗油量为1L/km,总装油量为500L.显然,吉普车必须用自身油箱中的油在沙漠中设几个临时 加油点,否则是通不过沙漠的.假设 ...
- 汽车最少油耗穿越沙漠问题(Java源码)
例题: 一辆吉普车穿越1000km的沙漠,吉普车的总装油量为500加仑,耗油率为1加仑/km.由于沙漠中没有油库,必须先使用这辆车在沙漠中建立临时的油库(起点处吉普车满油).若吉普车用最少的耗油量穿越 ...
- 递推法:穿越沙漠问题
吉普车试图穿越 x km 宽的沙漠,吉普车耗油率1L/km,总装油量 500L,对于 x > 500,吉普车需要设置临时储油点,以穿越沙漠.现在,我们需要对于输入的 x 值,计算最少的耗油量.其 ...
- 算法设计与分析-迭代法-穿越沙漠问题
算法设计与分析-迭代法-穿越沙漠问题 题目: 用一辆吉普车穿越1000公里的沙漠.吉普车的总装油量为500升,耗油率为1升/公里.由于沙漠中没有油库,必须先用这辆车在沙漠中建立临时油库.该吉普车以最少 ...
- 【算法设计zxd】第3章 迭代法 杨辉三角,穿越沙漠,内存移动,竖式相乘(阶乘)
目录 迭代:(辗转法) 一种 不断用变量的旧值递推新值的过程 [例3-1] 输出如图的杨辉三角形. [例3-2]穿越沙漠问题 [例3-2]内存移动问题 [例3-4]编程求当n<=1 ...
最新文章
- linux usb驱动框架
- [YTU]_2354 (实现复数类中的加运算符重载【C++运算符重载】)
- ASIHTTP 框架,同步、 异步请求、 上传 、 下载
- DROP TABLE、TRUNCATE TABLE和DELETE的区别
- python【进阶】4.文本和字节序列
- javascript 自定义Map
- 如何绘制逻辑图 — 7.逻辑的表达:业务逻辑
- 使用web服务器控件显示页面,服务器_Web服务器控件:TextBox控件,阅读此文请先查看网页教学网 - phpStudy...
- netcore之托管程序
- hdu 4405 Aeroplane chess 概率dp
- Fiddler中文乱码设置
- web微信授权登录-代码篇
- javascript nonono
- 哈夫曼码的编译码系统
- 好用的企业邮箱怎么选择?可用邮箱大全
- Linux常用图片查看处理软件
- Word换页不用频繁敲回车
- 计算机声音在线模拟,计算机声场模拟软件ODEON及其应用.pdf
- 什么样的人当不好程序员?
- 心理学统治世界(1)——股民的圣经