zoukankan      html  css  js  c++  java
  • 汽车加油问题--贪心算法

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

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

    数据输入: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

    问题分析:把距离相加,判断是否大于n,如果大于n,计数一次

    #include <iostream>
    
    using namespace std;
    
    int main()
    {   int n,k;
        cout<<"输入n,k"<<endl;
        cin>>n>>k;
        int a[100];
        cout<<"输入距离"<<endl;
        for(int i=1;i<=k+1;i++)
        {
            cin>>a[i];
        }
        int count=0;
        int sum=0;
        for(int i=1;i<=k+1;i++)
        {
            sum+=a[i];
            if(sum>=n)
            {
                sum=a[i];
                count++;
                cout<<"======="<<endl;
                cout<<""<<count <<"次加油的位置:"<<a[i-1]<<endl;
            }
        }
    
        cout << "总共加油:"<<count<<""<< endl;
        return 0;
    }
  • 相关阅读:
    腾讯为什么会出Q立方浏览器?
    String,StringBuffer与StringBuilder的区别??
    Linux Socket编程(不限Linux)
    将div显示在屏幕正中央
    计算鼠标坐标是否在指定范围内
    正则
    ajax异步通信
    CSS Float 换行
    jQuery强大的jQuery选择器
    给display字段增加筛选功能
  • 原文地址:https://www.cnblogs.com/xiaojuzibuxiao/p/7701336.html
Copyright © 2011-2022 走看看