社区讨论
0分,思路应该没问题,代码全注释
P9749[CSP-J 2023] 公路参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m2izxwju
- 此快照首次捕获于
- 2024/10/21 20:32 去年
- 此快照最后确认于
- 2024/10/23 20:33 去年
CPP
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int n, d;
int a[maxn], v[maxn];
long long ans = 0;
int main() {
cin >> n >> d;
for (int i = 1; i < n; i++) {
cin >> v[i];
v[i] = ceil(v[i] / double(d)); // 转换为需要的油量
}
for (int i = 1; i <= n; i++) cin >> a[i];
int res = 0; // 当前的油量初始化为0
int mi = INT_MAX; // 初始化为最大整数,以便第一次比较时更新
for (int i = 1; i < n; i++) {
mi = min(mi, a[i]); // 更新最低油价
if (res >= v[i]) {
res -= v[i]; // 有足够的油,减少油量
} else {
int need = v[i] - res; // 计算还需要多少油
if (need < 0) need = 0; // 确保需要的油量不为负
ans += need * mi; // 更新总花费
res = need; // 更新剩余油量
}
}
cout << ans << endl;
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...