贪心算法汽车加油问题



汽车加油

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

分析:

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

#include
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;i0){
            printf("%d\t",i);
        }
    }
    return 0;
}
贪心算法汽车加油问题_第1张图片
运行截图

你可能感兴趣的:(贪心算法汽车加油问题)