最近我正在备考csp-j,在测数据时它(我的程序)直接倒反天罡,给我来了个10。我用的贪心,请大佬教教我。下面是代码:
#include "iostream"
#include "cmath"
using namespace std;
const unsigned long long N=1e5+7;
int n,d;
int RoadLong[N],cost[N];
long long exist = 0,ans=0;
int minCost;
int main() {
cin>>n>>d;
for(int i=1;i<n;i++)cin>>RoadLong[i];
for(int i=0;i<n;i++)cin>>cost[i];
int minCost=cost[1];
for(int i=1;i<n;i++) {
if(exist>=RoadLong[i]) {
exist-=RoadLong[i];
continue;
}
RoadLong[i]-=exist;
minCost=min(minCost,cost[i]);
int v=RoadLong[i]/d;
if(RoadLong[i]%d>0)v++;
exist=v*d-RoadLong[i];
ans=v*minCost;
}
cout<<ans<<endl;
return 0;
}