zoukankan      html  css  js  c++  java
  • 7-1 汽车加油问题 (15分)

     

    题目来源:王晓东《算法设计与分析》

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

    输入格式:

    第一行有 2 个正整数n和 k(k<=1000 ),表示汽车加满油后可行驶n公里,且旅途中有 k个加油站。 第二行有 k+1 个整数,表示第 k 个加油站与第k-1 个加油站之间的距离。 第 0 个加油站表示出发地,汽车已加满油。 第 k+1 个加油站表示目的地。

    输出格式:

    输出最少加油次数。如果无法到达目的地,则输出“No Solution!”。

    输入样例:

    7 7
    1 2 3 4 5 1 6 6  

    输出样例:

    4
    

    代码:

    #include <iostream>
    using namespace std;
    int main(){
        int n;  // 表示汽车加满油后可行驶n公里
        int k;  // 旅途中有 k个加油站,要走k+1段路
        int count=0;  // 加油次数 
        
        cin>>n;
        cin>>k;
        int s[k+4]={0};  // 虽然只有 k+1 个数据,但是要留多几个后面有用 
        for(int i=1;i<=k+1;i++){
            cin>>s[i];
        }
        
        for(int i=1;i<=k+1;i++){
            int len=s[i];
            //没有解 
            if(n<len){
                cout<<"No Solution!" <<endl;
                return 0;
            }
            //最后一段路不用加油 
            if(i==k+1) break;
            //一般情况 
            while(len<=n){
                len += s[++i];
                if(i==k+3) {  // 不用加油的情况 
                    cout<<count<<endl;
                    return 0;
                }
            }          
            i--;
            count++; 
        } 
        cout<<count<<endl; 
        return 0;
    }
  • 相关阅读:
    ESXi创建磁盘命令
    TNS-12518,TNS-12536,TNS-00506,Linux Error: 11: Resource temporarily unavailable
    监听的instance status blocked分析
    Oracle 用户、对象权限、系统权限
    MIME详解
    11g等待事件之library cache: mutex X
    Latch Free
    PowerDesigner小技巧
    yum本地源配置
    内核参数SEMMSL SEMMNS SEMOPM SEMMNI参数的设置
  • 原文地址:https://www.cnblogs.com/lvjingyuan/p/13943991.html
Copyright © 2011-2022 走看看