题目方向给得很明确
从终点出发往回推,如果当前剩余的油量不能行驶到下一个加油站,就在当前加油站加油,如果能行驶到下一个加油站,则再下一个站加油,行驶的过程中减去对应的油量
#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); }