有多逆天自己看吧,如下
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,d;
struct node{
int v,a;
}p[100005];
int main(){
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
cin>>n>>d;
for(int i=2;i<=n;i++) cin>>p[i].v;
for(int i=1;i<=n;i++) cin>>p[i].a;
int bj=p[1].a;
int sum=p[2].v;
int c=0;
int cnt=0;
int ans=0;
for(int i=1;i<=n-1;i++){
p[i+1].v-=cnt;
c=p[i+1].v;
if(p[i+1].v%d==0) p[i+1].v/=d;
else p[i+1].v=p[i+1].v/d+1;
sum=p[i+1].v*d;
cnt=sum-c;
ans+=bj*p[i+1].v;
if(bj>p[i+1].a)
bj=p[i+1].a;
}
cout<<ans<<endl;
return 0;
}
洛谷40pts(开long long-->65pts)
小图灵0pts
int+非正解=85pts
其实有一段故事:考场T4code覆盖了T2code,重打了一遍T2,结果忘了long long(第一遍开了),本来气死了,没想到CCF...泪目