EOJ 1105 Greedy

题目方向给得很明确

从终点出发往回推,如果当前剩余的油量不能行驶到下一个加油站,就在当前加油站加油,如果能行驶到下一个加油站,则再下一个站加油,行驶的过程中减去对应的油量

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,k,u,v;
    cin>>n>>k;
    int res=0,cnt=n;
    k++;
    while(k--){
        cin>>u;
        if(u>=n){
            printf("No Solution!");
            return 0;
        }
        if(cnt>=u)cnt-=u;
        else{
            cnt=n-u;
            res+=1;
        }
    }
    printf("%d",res);
}

猜你喜欢

转载自www.cnblogs.com/TAMING/p/9212173.html