美文网首页
贪心算法汽车加油问题

贪心算法汽车加油问题

作者: Super_邓帅 | 来源:发表于2016-12-31 19:11 被阅读0次


汽车加油

一辆汽车加满油后可以行驶n公里,旅途中有加油站,设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。
测试用例: 7 7 (n k)
1 2 3 4 5 1 6 6(第k个加油站与第k-1个加油站之间的距离,其中第一个代表起点,最后一个代表终点。)
输出: 4(最少加油次数)

分析:

按照贪心算法的思想,加一次油尽可能多行驶几个站,最好情况是起点加油,直接到终点,中途不要加油,然并卵。
所以,要判断行驶距离n与站点间距离的和s的关系,如果n>s,能继续往后行驶,否则加油。

#include<stdio.h>
int main(){
    int n,k;                  //n代表汽车加满油可行驶n千米,k代表有几个加油站 
    scanf("%d%d",&n,&k);
    int p[k+1],stop[k+1];        //p数组代表各加油站之间距离,s数组代表在哪一站加油 
    int i,s=0,num=0;          //num代表加油次数 
    for(i=0;i<k+1;i++){       //各加油站之间的距离 
        scanf("%d",&p[i]); 
        stop[i]=0;
    }
    for(i=0;i<k+1;i++){       //尽量加一次油,多行驶几个站,如果油不够,则停下加油 
        s+=p[i];
        if(s<=n){
            continue;
        }else{
            num++;
            s=0;
            stop[i]++;
            i--; 
        }
    } 
    printf("%d次\n",num);
    printf("加油的站点为:\n");
    for(i=0;i<k+1;i++){
        if(stop[i]>0){
            printf("%d\t",i);
        }
    }
    return 0;
}
运行截图

相关文章

  • 贪心算法汽车加油问题

    汽车加油 一辆汽车加满油后可以行驶n公里,旅途中有加油站,设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油...

  • 贪心算法---汽车加油问题

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

  • 【算法打卡60天】Day29贪心算法:如何用贪心算法实现Huff

    Day29学习内容 :贪心算法:如何用贪心算法实现Huffman压缩编码? 1.如何理解贪心算法?贪心算法解决问题...

  • 984. 不含 AAA 或 BBB 的字符串/ 134. 加油站

    984. 不含 AAA 或 BBB 的字符串 相关标签 : 贪心算法 134. 加油站 相关标签: 贪心算法

  • 只需9步,直接拿下贪心算法

    今天为大家分享的是贪心算法。 贪心算法:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选...

  • 可用贪心算法解决的几个基本问题

    可用贪心算法解决的几个基本问题 关键:看问题有没有贪心选择性质和最优子结构性质。有些问题看似是可以用贪心算法,但是...

  • 算法理论 | 贪心算法

    贪心算法 贪心算法,又称贪婪算法(Greedy Algorithm),是指在对问题求解时,总是做出在当前看来是最好...

  • GREEDY ALGORITHM

    贪心算法原理 贪心算法以动态规划方法为基础,区别于贪心算法在每一次做出贪心选择后,子问题之一为空,下一步只需继续分...

  • 装箱问题

    贪心算法 装箱问题 问题描述: 求解思路: 代码实现:

  • 贪心算法+回溯算法

    贪心算法 先来比较一下贪心算法和动态规划 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择,不考虑整体,...

网友评论

      本文标题:贪心算法汽车加油问题

      本文链接:https://www.haomeiwen.com/subject/orcbvttx.html