题目:2023CSP-J公路
思路:贪心
我们可以在草稿纸上列一列,滤清思路,这道题没什么难度的!
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,d,a[100005],v[100005],s[10005],id=1;
long long sum=0;
int main() {cin>>n>>d;for(int i=2; i<=n; i++)cin>>v[i],s[i]=s[i-1]+v[i];for(int i=1; i<=n; i++)cin>>a[i];a[n]=0;double r=0;for(int i=2;i<=n;i++){if(a[i]<a[id]){long long dis=s[i]-s[id];long long num=ceil(dis*1.0/d-r);r=r+num-dis*1.0/d;sum+=num*a[id];id=i;if(id==n) break;}}cout<<sum;return 0;
}