链接:link.
虽然是个简单的dp,但是真的是为数不多自己d出来的。
一维代表楼层,二维0代表楼梯,1代表电梯。
int n,c;
ll a[200010],b[200010];
ll dp[200010][2];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>c;
for(int i=1;i<n;i++)cin>>a[i];
for(int i=1;i<n;i++)cin>>b[i];
dp[0][0]=0;
dp[0][1]=c;
for(int i=1;i<n;i++)
{
dp[i][0]=min(dp[i-1][1]+a[i],dp[i-1][0]+a[i]);
dp[i][1]=min(dp[i-1][1]+b[i],dp[i-1][0]+c+b[i]);
}
for(int i=0;i<n;i++)cout<<min(dp[i][0],dp[i][1])<<" ";
return 0;
}