4 条题解

  • 1
    @ 2024-5-29 20:55:49

    2023CSP-J第二题原题 这是当年在考场上写的代码 (不开long long见祖宗) 思路是贪心,买油买到更便宜的站点

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    long long n,d,price,ans,s,oil;
    int a[N];
    int v[N];
    int main(){
        scanf("%d%d",&n,&d);
        for(int i=1;i<=n-1;i++){
            scanf("%d",&v[i]);
        }
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        int i=1,j=1;
        while(i<=n-1){
            i=j;
            s=0;
            while(a[j]>=a[i]){
                if(j>=n){
                    break;
                }
                s+=v[j];
                j++;
            }
    
            if((s-oil)%d==0){
                price=(s-oil)/d*a[i];
                oil=0;
            }else{
                price=((s-oil)/d+1)*a[i];
                oil=d-(s-oil)%d;
            }
            ans+=price;
            if(j>=n){
                break;
            }
        }
        cout<<ans;
        return 0;
    }
    

    信息

    ID
    935
    时间
    1000ms
    内存
    512MiB
    难度
    8
    标签
    递交数
    319
    已通过
    48
    上传者