P9749求助
  • 板块学术版
  • 楼主Qin_windlight
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/12 19:03
  • 上次更新2024/10/12 21:02:43
查看原帖
P9749求助
1490511
Qin_windlight楼主2024/10/12 19:03
#include <iostream>

using namespace std;

const int N = 1e5+5;

long long n, d;
long long v[N], a[N];

long long cost;

long long min_ = 0x3f3f3f3f;
int min_index = 1;


int nums(int time,int left) {
	// 返回需要加的油数
	int i = (time-left);
	int num = i/d;
	if (i%d == 0) return num;
	else return num+1;


}

int main() {

	cin >> n >> d;


	for (int i=1; i<n; i++) {
		cin >> v[i];
	}
	for (int i=1; i<=n; i++) {
		cin >> a[i];
	}
	int temp = nums(v[1], 0);	// temp为需要加几升 
	cost = temp*a[1];	
	int left = temp*d - v[1];	// left为加完油跑完还剩几公里 

	for (int i=2; i<=n-1; i++) {
		
		if (a[i]<min_)
		{
			min_ = a[i];
		}
		
		
		temp = nums(v[i], left);
		cost += temp*min_;


		left = temp*d + left - v[i];


	}

	cout << cost;



	return 0;
}

https://www.luogu.com.cn/problem/P9749

2024/10/12 19:03
加载中...