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

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

数据输入:n:表示汽车加满油后可行驶nkm

k:旅途中有k个加油站

k+1个整数:表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。

数据输出:最少加油次数和具体在哪几个加油站加油。

例如: n=7  k=7

K+1个整数:1 2 3 4 5 1 6 6

最优值:4

2.相关代码:

#include<stdio.h>
#define M 100
int main(){
    int stations[M];//八个间距
    int ins; //油箱满的时候可以走的距离
    int num;//中间加油站的数量
    int i;
    int all=0;//总的加油次数
    int lv;//油箱中的油量可以走的距离  

    printf("请输入加油站的距离和数量\n");
    scanf("%d%d",&ins,&num);
    lv=ins;//油量赋初值 

    printf("请输入加油站间的距离\n");
        for(i=0;i<num+1;i++){
         scanf("%d",&stations[i]);
    } 

    printf("加油站间的距离分别为:\n");
    for(i=0;i<num+1;i++){
         printf("%d  ",stations[i]);
    }
    puts(""); 

    for(i=0;i<num+1;i++){//如果油量可以支撑下一段路,则继续走 

        if(stations[i]>ins) {
        printf("汽车不可能达到终点站");
        return 0;
        }

        if(lv>=stations[i]){
            lv-=stations[i];
        } 

        else {   //否则加满油
            lv=ins-stations[i];
            all++;

        }
    }

    printf("需要加油的总的加油站数量\n");
    printf("%d\n",all);//输出总的加油次数
} 

3.问题分析与解题思路

如果要使用贪心算法解决问题,那么需要检查每一小段路程是否超过汽车满油量时的最大支撑路程。如果有超过的,那么汽车不可能走完这段路。否则,找到汽车满油量时的最大支撑路程范围内的最后一个加油站,加油后继续用此方法前进

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. poj 1284 Primitive Roots(原根+欧拉函数)
  2. 插入函数c语言,线性表的插入函数
  3. mysql加锁语法_MySql 加锁问题
  4. AIR如何实现窗口顶置
  5. Android网络编程之一个Android下菜单系统模块的实现(客户端—添单功能(上部))
  6. 漫画:什么是图的最小生成树?
  7. 2017华为软挑——最小费用最大流(MCMF)
  8. c语言文献,关于计算机C语言的外文文献
  9. excel之筛选、删除技巧
  10. Java获取Excel中链接的文件
  11. 如何利用python计算即期利率_PYTHON计算任务收益率
  12. 生活大爆炸之光速可变,光速可超
  13. L1 正则化和L2正则化
  14. bowtie里的FM-index简介
  15. Matlab应变片仿真,一种基于Matlab/Adams联合仿真的真实路谱再现系统和方法与流程...
  16. [转载]中情局数千份机密文档泄露:各种0day工具、恶意程序应有尽有
  17. Python实现SVM的实例(包括网格调参和测试)总结综述
  18. 隐写术----LSB隐写
  19. http://www.dewen.net.cn/q/17095/SQL:用一条SQL语句统计出符合条件的内容
  20. 图论 最大团,最大独立集

热门文章

  1. python获取图像的长和宽_tensorflow之读取jpg图像长和宽实例
  2. Canvas学习笔记之画线
  3. 论文阅读笔记《Robust Point Matching via Vector Field Consensus》
  4. 嵌入式 -固件防复制系列【1】GD32代码读保护
  5. 64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场?
  6. 公司年会到底参不参加
  7. 【Python】flask框架学习 flask框架的基本使用
  8. 目标规划问题与LINGO求解
  9. BAT批处理脚本实例学习(五)局域网共享批处理安装软件
  10. (资讯)华为员工利用Bug越权访问机密卖给第三方,获利1.6万元,被判有期徒刑一年