求问ccf测评机有多差
查看原帖
求问ccf测评机有多差
689611
ganyifan楼主2023/10/29 21:45
#include<bits/stdc++.h>
using namespace std;
long long n,d,nl,sheng[10000005];
long  long numl[10000005],ans;
struct node{
    long long number;
    long long price;
    long long v;
}a[1000005];
bool cmp(node x,node y)
{
    if(x.price!=y.price) return x.price<y.price;
    else if(x.price==y.price&&x.number<y.number)
    {
        return x.price<y.price;
        return x.number<y.number;
        return x.v<y.v;
    }
    return x.number<y.number;
    return x.v<y.v;
}
int vis[100000005];
int main()
{
    //freopen("road.in","r",stdin);
    //freopen("road.out","w",stdout);//cheer for yourselves
    cin>>n>>d;
    nl=n;
    for(int i=1;i<=n-1;i++)
     {
         cin>>a[i].v;
         numl[i+1]=a[i].v+numl[i];
     }
     for(int i=1;i<=n;i++)
     {
         cin>>a[i].price;
         a[i].number=i;
     }
     sort(a+1,a+n+1,cmp);
     for(int i=1;i<=n;i++)
     {
         if(a[i].number<nl)
         {
             long long sl=numl[nl]-numl[a[i].number]-sheng[a[i].number];
             sheng[a[i].number]=0;
             if(sl%d==0)
             {
                 ans+=(sl/d)*a[i].price;
             }
             else if(sl%d!=0)
             {
                 ans+=(sl/d+1)*a[i].price;
                 sheng[a[i].number]+=sl%d;
             }
             nl=a[i].number;
         }
         if(nl==1) break;
     }
     cout<<ans<<endl;
     return 0;
}

赛时代码,洛谷官方数据45,ccf0pts,不理解,完全不理解

2023/10/29 21:45
加载中...