问题就是加了break就会TLE 不加答案肯定错 我怀疑我循环那里跳站台有问题 求指出
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,nn[200000],v[200000],jq[200000],ans,d,minno,num,zv,minn,xd,mv,xz,yl;
int main(){
cin>>n>>d;
for(int i=1;i<=n-1;i++){
cin>>v[i];
zv+=v[i];
}
for(int i=1;i<=n;i++){
cin>>jq[i];
minno=jq[1];
if(jq[i]<minno)
num++;
}
if(num==0){
if(zv%d==0)
ans=zv/d*jq[1];
else
ans=zv/d*jq[1]+jq[1];
cout<<ans;
return 0;
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(jq[j]<jq[i]){
minn=jq[j];
xd=j;
for(int k=i;k<j;k++){
mv+=v[k];
}
if(mv%d==0){
ans+=(mv-yl)/d*jq[i];
yl=yl-mv+d*(mv/d);
}else{
ans+=(mv-yl)/d*jq[i]+jq[i];
yl=yl-mv+d*(mv/d+1);
}
break;
}
}
i=xd;
}
cout<<ans;
return 0;
}