5分求调
查看原帖
5分求调
1278301
jiayu114514楼主2025/8/3 16:28
#include<bits/stdc++.h>
using namespace std;
int r[114514],m[114514];
int lc[11145][11145];
int main(){
	int n,d;
	cin>>n>>d;
	r[1]=0;
	for(int i=2;i<=n;i++){
		cin>>r[i];
	}
	for(int i=1;i<=n;i++){
		cin>>m[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i==j){
				lc[i][j]=0;
				continue;
			}
			for(int k=i+1;k<=j;k++){
				lc[i][j]+=r[k];
			}
		}
	}
	long long you=0,ans=0,sum;
	for(int i=1;i<=n;i++){
		for(int j=i;j<=n;j++){
			if(m[j]<m[i]){
				long long sum=ceil((lc[i][j]-you)*1.0/d);
				you+=d*sum-lc[i][j];
				ans+=m[i]*sum;
				i=j-1;
				break;
			}
		}
	}
	cout<<ans;
	return 0;
} 
2025/8/3 16:28
加载中...