问题描述

已知一辆汽车加满油后可行驶d(如d=7)公里,而旅途中有若干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加油使加油次数最少。用数组a存放各加油站之间的距离,如a[ ]={2,7,3,6},表示共有4个加油站,起点到1号加油站的距离为2km,1号到2号加油站的距离为7km,2号到3号加油站的距离为3km,3号到4号加油站的距离为6km。

算法思想

贪心法解决,只需要考虑能不能到下一个站的情况下还能到下下个站,如果可以则在下下个站继续判断是否还可以走,如果不可以情况则是(只能经过一个站,并在那个站加油)又或者是经过两个站不能到达第三个站,则在第二个站进行加油。

代码实现

#include<iostream>using namespace std;int oilShop[100];
//说明 输出的车站从第一个开始
void solve(int *array , int n)
{int oil = 7;for (int i = 0; i < n;++i){if(oil - array[i] >= 0 && oil - array[i] - array[i+1] >=0)//可以经过两站{oil = oil - array[i] - array[i + 1];i += 2;continue;}if (oil - array[i] >= 0 && oil - array[i] - array[i+1] < 0 )//可以经过一站{cout << i + 1 << endl; i++;oil = 7; //加满油continue;}if(oil - array[i] < 0) // 针对第一种情况到达两个站后,不能跑第三个站,在第二个站进行加油{oil = 7;cout << i  << endl;continue;}}
}
int main()
{cout << "enter how much shop" << endl;int num = 0;cin >> num;cout << "enyer there diatance" << endl;for (int i = 0; i < num;++i){cin >> oilShop[i];}solve(oilShop, num);return 0;
}

** 本题个人感觉贪心思路应该是没有问题的,由于时间仓促,难免会有问题,如果有思路上的纰漏还请您指正!**

求解汽车加油问题C++相关推荐

  1. 贪心法求解汽车加油问题

    文章目录 问题内容 贪心法思想 问题分析 代码 结果展示 遇到的问题 问题内容 已知一辆汽车加满油后可行驶d(如d=7)km,而旅途中有若干个加油站.编写一个实验程序指出应在哪些加油站停靠加油,使加油 ...

  2. C++贪心实现汽车加油问题

    一.实验目的 1.掌握基于贪心的算法求解汽车加油问题的原理和贪心性质的证明. 2.掌握汽车加油问题贪心算法正确性的推导过程和设计原理. 3.掌握基于贪心的算法汽车加油问题函数的具体步骤. 4.具备运用 ...

  3. 动态规划旅游问题:汽车加满油可以跑n千米,中途有若干个加油站,请用动态规划的方式求解中途加油次数最少的方案。

    算法课的课堂测试,问题大概就是这些描述. 动态规划旅游问题: 汽车加满油可以跑n千米,中途有若干个加油站,请用动态规划的方式求解中途加油次数最少的方案. 我的代码: #include<iostr ...

  4. 最优服务次序问题 和 汽车加油问题

    最优服务次序问题 问题描述: 设有n个顾客同时等待一项服务.顾客i需要的服务时间为ti, 1≦i ≦n .共有s处可以提供此服务.应如何安排n个顾客的服务次序才能使平均等待时间达到最小平均等待时间是n ...

  5. Loj#6223 Luogu P4009 汽车加油行驶 分层图最短路

    这是本蒟蒻博客的第一篇文章,不规范之处敬请各位大佬指正和谅解orz Loj#6223+Luogu P4009 文章目录 前言 一.建模 二.代码实现 1.节点在图中的编号(分层图的存储) 2.建边 对 ...

  6. 虚拟汽车加油问题C语言——For初学者

    虚拟汽车加油问题–C语言 问题描述: 一辆虚拟汽车加满油后可行驶 n km.旅途中有若干加油站.设计一个有效算法,指出应该在那些加油站停靠加油,使沿途加油次数最少.并证明算法能产生一个最优解. 算法设 ...

  7. 孤岛营救与汽车加油行驶问题

    题目链接:https://www.luogu.org/problemnew/show/P4011 (孤岛营救)|| https://www.luogu.org/problemnew/show/P400 ...

  8. 【线性规划与网络流24题】汽车加油行驶问题 分层图

    汽车加油行驶问题 Time Limit: 1 Sec  Memory Limit: 128 MB Description 给定一个 N*N的方形网格,设其左上角为起点◎,坐标为( 1,1),X轴向右为 ...

  9. 算法设计与分析——贪心算法——汽车加油问题

    汽车加油问题:一辆汽车加满油后可行驶n公里,旅途中有若干个加油站,两加油站间距离不超n 公里,起点离第一个加油站距离及最后一个加油站离终点距离也不超过n公里.算法给出应在哪些加油站停靠加油,使沿途加油 ...

最新文章

  1. 403错误代码导致网站样式全部乱了
  2. Python(basic)Day-1
  3. 超级简易法上传本地文件到github上
  4. 为什么选择微服务架构?如何取舍?
  5. springcloud hystrix实战(二)
  6. C# - 多线程(基础)
  7. C语言取小于自身的最大整数,C语言整数类型(含取值范围和长度)
  8. JAVA基础知识(五)数据类型转换
  9. 关于 IO 和 NIO 的思考
  10. 什么是std :: move(),什么时候应该使用?
  11. Thinkphp apart_level 自定义独立日志
  12. CentOS Docker环境部署NextCloud
  13. artDialog | 经典的网页对话框组件
  14. 【SOLIDWORKS学习笔记】工程图基础操作
  15. python批量图片合并
  16. Mask OBB 论文学习笔记
  17. CenterNet2:CenterNet再升级,原作者提出基于概率解释的两阶段目标检测
  18. 计算机手速如何学,拼不过手速的你,来学学这些操作
  19. 2018-11-5-win10-uwp-异步转同步
  20. 1059604-93-1,m-PEG13-Ms甲磺酸基是亲核取代反应的良好离开基

热门文章

  1. CSS 单行/多行文本溢出显示省略号(...)的实现
  2. nacos Field ‘nid‘ doesn‘t have a default value;
  3. CSDN校园活动社开展“开学季活动”
  4. discuz3.2开启ssl实现https需要修改的几个地方
  5. sqlite多进程并发读写模式下,返回SQLITE_BUSY错误的处理方法
  6. CSDN日报20170407 ——《嘿,程序猿,你该学点经济学了!》
  7. tankbot 机器人_优必选首款履带式Jimu机器人 TankBot 登陆Apple Store零售店
  8. Typecho主题Brave—勇敢爱
  9. python第二版课后习题答案_《python核心编程第二版》课后习题6-12答案
  10. 分析师Willy Woo:最近BTC买入是由长期持有者推动的,这次暴涨远未结束