【题目描述】
小苞准备开着车沿着公路自驾。
公路上一共有 n
个站点,编号为从 1
到n
。其中站点 i
与站点i+1
的距离为vi
公里。
公路上每个站点都可以加油,编号为i
的站点一升油的价格为ai
元,且每个站点只出售整数升的油。
小苞想从站点 1
开车到站点 n
,一开始小苞在站点 1
且车的油箱是空的。已知车的油箱足够大,可以装下任意多的油,且每升油可以让车前进d
公里。问小苞从站点 1
开到站点 n
,至少要花多少钱加油?
【输入】
输入的第一行包含两个正整数 n
和d
,分别表示公路上站点的数量和车每升油可以前进的距离。
输入的第二行包含n−1
个正整数v1
,v2
…vn−1
,分别表示站点间的距离。
输入的第三行包含 n
个正整数 a1
,a2
…an
,分别表示在不同站点加油的价格。
【输出】
输出一行,仅包含一个正整数,表示从站点 1
开到站点 n
,小苞至少要花多少钱加油。
【输入样例】
5 4
10 10 10 10
9 8 9 6 5
【输出样例】
79
【提示】
【样例 1 解释】
最优方案下:小苞在站点 1
买了 3
升油,在站点2
购买了 5
升油,在站点 4
购买了 2
升油。
【数据范围】
对于所有测试数据保证:1≤n≤10^5
,1≤d≤10^5
,1≤vi≤10^5
,1≤ai≤10^5
。
【思路】贪心加模拟
#include <bits/stdc++.h>
using namespace std;
const long long MAXN=1e5+5;

文章讲述了一个编程问题,使用贪心策略和模拟方法,求解在给定条件下的最少加油费用,适合IT技术与算法学习者。
2671

被折叠的 条评论
为什么被折叠?



