问题描述

  一辆汽车加满油后可行驶nkm 。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。

编程任务

  对于给定的n和k个加油站位置,编程计算最少加油次数。

数据输入

  第1行有2个正整数n和k,表示汽车加满油后可行驶nkm,且旅途有k个加油站。接下来的一行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。

结果输出

计算出的最少加油次数。如果无法到达目的地,则输出”No Solution”。

算法实现

假设X[i]表示i-1到i号加油站之间的距离,每一次都是加满油再出发,根据贪心算法的选择性质为了要使加油次数最少就会选择离加满油的点远一点的加油站加油。另外当加满油之后,都要是此后的过程中使加油次数最少。每一次汽车中剩下的油不能再行驶到下一站就在该站加油.每一次加满油之后与起点具有相同的条件,可以看做一个新的起点,过程也是相同的。所以说加油次数最少也具有最优子结构的性质。

代码实现:

//汽车加油
#include<iostream>
using namespace std;
int main()
{int n,k;int a[100];cin>>n>>k;int num=0,s=n;for(int i=0;i<=k;i++){cin>>a[i];}for(int i=0;i<=k;i++){if(a[i]>n){cout<<"No Solution";return 0;}if(s-a[i]>=0){s-=a[i];}else{num++;s=n-a[i];}}cout<<num;return 0;
}

样例:

汽车加油问题 --贪心算法相关推荐

  1. 汽车加油问题贪心算法c语言,汽车加油问题之贪心算法(全面分析)

    一辆汽车加满油后可以行驶N千米.旅途中有若干个加油站.指出若要使沿途的加油次数最少,设计一个有 效的算法,指出应在那些加油站停靠加油.给出N,并以数组的形式给出加油站的个数及相邻距离,指出若要使沿途的 ...

  2. 汽车加油问题--贪心算法(算法设计与分析)

    7-1 汽车加油问题 题目来源:王晓东<算法设计与分析> 一辆汽车加满油后可行驶 n公里.旅途中有若干个加油站.设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少. 输入格 ...

  3. 汽车加油问题 贪心算法 Java(详细注释)

    目录 一.问题描述 二.分析过程 三.参考代码及运行结果 一.问题描述 二.分析过程 i :第i个加油站 i = 0:出发地 i = k:目的地(共 k+1 个站,由问题知,k = 5) x[i] : ...

  4. 汽车加油问题--贪心算法

    一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少.对于给定的n(n <= 5000)和k(k <= 1000)个加油站 ...

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

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

  6. 「贪心算法」虚拟汽车加油问题

    > 问题描述 一辆虚拟汽车加满油后可行驶 n km.旅途中有若干加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少,计算最少加油次数. > 数据输入 终端输入正整数 ...

  7. java 汽车加油问题_贪心算法 汽车加油问题 | 学步园

    / //一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效      // // // n和k个加油站位置,编程计算最少加油次数.并证明算法能产生一个最优解.    // //要求:   ...

  8. 汽车加油问题(贪心算法)

    1.问题描述:一辆汽车加满油后可行驶nkm.旅途中有若干加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少. 算法设计:对于给定的n和k个加油站位置,计算最少加油次数. 数据输入 ...

  9. 【贪心算法】虚拟汽车加油问题

    算法实现题 4-9 虚拟汽车加油问题 问题描述: 一辆虚拟汽车加满油后可以行驶n km.途中有若干个加油站.设计一个有效的算法,指出应在那个加油站停靠加油,使沿途加油次数最少. 算法设计: 给定n和k ...

最新文章

  1. 有限域f9的特征是多少_宽频域谐波的潜在威胁欠缺全面考虑,现有标准需进一步优化...
  2. SPCAMLEditor–灵活实用的CAML编辑工具(上)
  3. 5、ORDER BY:对查询结果排序
  4. swfupload简单使用
  5. 年薪201万的华为“天才少年”曾是三本复读生,逆袭就是抓住每一次提升自己的机会
  6. 使用@Async异步注解导致该Bean在循环依赖时启动报BeanCurrentlyInCreationException异常的根本原因分析,以及提供解决方案
  7. tomcat配置项目路径或部署工程名
  8. discuz 版块导航function_forumlist.php,Discuz! X2“扩建”左侧版块导航 让社区层次一目了然...
  9. webpack css打包为一个css
  10. A Simple Note on P4FPGA: A Rapid Prototyping Framework for P4
  11. SpringMVC(2)—SpringMVC整合Spring的HelloWorld
  12. 苹果cms V10模板 手机端模板粉红色模板带会员中心
  13. 统计一个数字在排序数组中出现的次数
  14. [C++] 基础知识点:namespace
  15. 如何绘制平台框架的设计图:使用UML工具
  16. IDEA开发hadoop
  17. 沙盘游戏模型的基本象征
  18. ELK安装过程记录,监听netflow和sflow的配置文件编写
  19. 无人车路径规划算法---(4)基于搜索的路径规划算法 II(贪心/Astar)
  20. 最近的一些杂感-20220107

热门文章

  1. bluehost 虚拟主机 php.ini,BlueHost主机设置伪静态的三种方法
  2. memcpy函数用法
  3. return ||和return 区别
  4. python安装失败0x80070570_0x80070570 文件或目录损坏且无法读取解决方法
  5. 使用RMSE分析数据
  6. 水深6到9米有鱼吗_再战洪门水库,总有钓不完的鱼,让人爱恨交加
  7. ak47怎么得 rust_UZI直播一波操作火到国外,Reddit网友:这不是乌兹,这是AK47
  8. PHPExcel的常用功能
  9. Android11什么时候升级,oppo手机什么时候升级安卓11
  10. B2B2C商城系统要多少钱?这些技巧需要知道