CSP-Jt2求调
  • 板块学术版
  • 楼主Trubiacy_
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/21 23:44
  • 上次更新2023/11/2 12:03:48
查看原帖
CSP-Jt2求调
750535
Trubiacy_楼主2023/10/21 23:44

rt,洛谷60分,小图灵35分

#include <bits/stdc++.h>
#define int long long
#define MAXN 0x3f3f3f3f3f3f3f3f
#define MINN -0x3f3f3f3f3f3f3f3f
using namespace std;

const int N=1e5+9;
int n,d,u,sum[N],a[N],ans;

signed main(){
//	freopen("road.in","r",stdin);
//	freopen("road.out","w",stdout);
	scanf("%lld%lld",&n,&d);
	for(int i=2;i<=n;i++){
		scanf("%lld",&u);
		sum[i]=sum[i-1]+u;
	}
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	int f=1;
	int x=0;
	for(int i=1;i<=n;i++){
		if(a[f]<=a[i]) continue;
		int tmp=sum[i]-sum[f]-x;
		ans+=tmp%d==0?tmp/d*a[f]:(tmp/d+1)*a[f];
		x=d-tmp%d;
		f=i;
	}
	if(f^n){
		int tmp=sum[n]-sum[f]-x;
		ans+=tmp%d==0?tmp/d*a[f]:(tmp/d+1)*a[f];	
	} 
	printf("%lld",ans);
	return 0;
}
2023/10/21 23:44
加载中...