小埋旅游题解

小埋旅游 ——风速法师

​ 老规矩,先看题目描述:

小埋最近想要出去旅游,选择了一个旅游地点,中间会经过一些加油站相当于放到一条直线公路上。

小埋有一辆车,1公里消耗 1升油。我们出发地点是在 0 这个位置,并且油箱是满的。

然后要路过 n 个加油站,分别是 1,2,…,a1,a2,…,an,我们会在加油站把油加满,然后我们到达 x 景点后再原路返回。我们初始出发时油箱的最小体积是多少。

路程顺序是我们从 0 ~ x 点,然后再从 x ~ 0 点返回回来。

这里有一个很重要的点,就是x点没有加油站。所以说最后的一个线是要把距离×2的。

那么可以先假设油箱是0,每次如果距离大于了已有油箱,那么就把油箱设置为现在的距离就可以了。最后比较的是油箱和两倍的(最后的加油站和终点的距离)。上代码。

#include <bits/stdc++.h>
using namespace std;
int n,t,x,a[55]; 
int main()
{
	cin>>t;
	while(t--){
		cin>>n>>x;
		int flag=0,res=0;
		for(int i=1;i<=n;i++){
			cin>>a[i];
			if(res>=(a[i]-flag)){
				flag=a[i];
			}
			else{
				res=a[i]-flag;
				flag=a[i];
				
			}
		}
		if(res<(x-flag)*2){
			res=(x-flag)*2;
		}
		cout<<res<<endl;
	}
	return 0;
}

我也不知道该说什么,flag是用来纪录现在的车子的位置,莫得了。

拜拜。

3 个赞

《纪录》

1 个赞