社区讨论

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 条回复,欢迎继续交流。

正在加载回复...