zoukankan      html  css  js  c++  java
  • 汽车加油问题

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

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

              k:旅途中有k个加油站

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

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

    第一行为加油次数,第二行为加油的加油站

    代码:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
        int n,k;
        cin>>n>>k;
        int s[k+1];
        for(int i=0;i<k+1;i++)
        {
            cin>>s[i];            //输入
        }
        int sum=n,count=0,lu[k+1];   //当前油数,加油次数,加油地点
        for(int i=0;i<k;i++)
        {
            sum-=s[i];
            if(sum<s[i+1])        //如果下次不够
            {
                sum=n;
                count++;
                lu[count]=i+1;
            }
        }
        cout<<count<<endl;
        for(int i=1;i<=count;i++)    //输出
        {
            cout<<lu[i]<<" ";
        }
        cout<<endl;
    }
  • 相关阅读:
    图标库
    AndroidManifest中注册application
    两个App之间的跳转 并传值
    Fresco加载显示gif图片
    弹出PopupWindow背景变暗的实现
    判断网络是否可用
    Java的安全性和可移植性
    DBUtils
    Observer
    IO
  • 原文地址:https://www.cnblogs.com/llsq/p/7688265.html
Copyright © 2011-2022 走看看