缺少一个计算剩余油量的部分,求调qwq
查看原帖
缺少一个计算剩余油量的部分,求调qwq
942313
lhcl楼主2024/10/17 16:07

代码如下:

#include <bits/stdc++.h>
using namespace std;
int n;
float d;
struct road
{
	// 记录路程和价格
	int s;
	int a;
	int v;
} r[100010];

void qianzhui()
{
	r[1].v=0;//从自己到自己不需要耗油
	for(int i=2;i<=n;i++)
	{
		r[i].v=r[i-1].v+ceil(r[i].s/d);//计算从第一个站点到第i个需要多少油
	}
}

各位大佬ORZ
long long temp=0;
int oil(int x,int y)
{
	
	for(int i=x;i<y;i++)
	{
		temp+=r[i].s;
	}
	temp=ceil(temp/d);
	return temp;
}
int main()
{
	cin >> n>>d;
	for (int i = 1; i < n; i++)
		cin >> r[i].s; // 记录每个站点之间的距离,最后一个站点为0
	for (int i = 1; i <= n; i++)
		cin >> r[i].a;
	//qianzhui();
	long long sum=0;
	r[n].a=0;//把最后的站点给赋为0,方便后续计算
	int p=0;
	for(int i=1;i<n;)
	{
		p=0;
		for(int j=i+1;j<=n;j++)
		{
			//每次寻找离比当前油价便宜的站点还有几站,再根据预处理好的油耗计算出要加多少油
			if(r[i].a>r[j].a) 
			{
				int sum1=sum;
				sum=sum+oil(i,j)*r[i].a;
				cout<<i<<" "<<j<<" "<<sum-sum1<<endl;
				p=j;
				break;
			}
		}
		i=p;
	}
	cout<<sum<<endl;
	return 0;
}

各位大佬ORZ
2024/10/17 16:07
加载中...