不灭「不死鸟之尾」
题面
首先我们思考一段长为
如果这辆车停在两侧,那最小时间显然是
不妨设
如果这辆车右移
因为
那是否有可能这样子贪心的停在两侧会影响到后面,或者说有没有情况使得某一辆车不停在两侧能让时间减少。
我们发现当
而刚好,停在两侧的情况能保证一直都只有一段连续车位,长度
那就好办了,一直贪心取下去就行。
代码:
#include<bits/stdc++.h>
#define LL long long
#define N 100005
using namespace std;
int n;LL W[N],L[N],R[N],ans;
int main(){
scanf("%d",&n);
for(int i(1);i<=n;++i) scanf("%lld",&W[i]);
for(int i(1);i<=n;++i) scanf("%lld",&L[i]);
for(int i(1);i<=n;++i) scanf("%lld",&R[i]);
for(int i(1);i<=n;++i) ans+=W[i]-(n-i)*max(L[i],R[i]);
printf("%lld\n",ans);
return 0;
}