暑假XP03-A题目 + 思路
2026-07-30 20:58:58
发布于:广东
A7124.[CSP-J 2023] 公路
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e5 + 5;
ll v[N];
ll n,d,mn = 1e18,have = 0,ans = 0;//have : 可行的路程
int main() {
freopen("road.in", "r", stdin);
freopen("road.out", "w", stdout);
cin >> n >> d;
for(ll i = 1;i < n;i++)cin >> v[i];//每个站点间的距离
for(ll i = 1,x;i < n;i++){
cin >> x;//输入油价
mn = min(x,mn);//找出价格更低的油
ll buy = (v[i] - have + d - 1) / d;//买的油量 = (站点距离 - 拥有的油量 + 每升油可行距离(用于向上取整) - 1) / 每升油可行距离
ans += buy * mn;//需要使用的钱数加上买的油量 * 油价
have = buy * d + have - v[i];//(买的油量 * 每升油可行距离)(买的油可行的路程) + 可行的路程 - 两地的距离
}
cout << ans;
return 0;
}
这里空空如也

















有帮助,赞一个