CSP-J T2 90pts 求助(悬关)
  • 板块题目总版
  • 楼主zjpwdyf
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/22 17:16
  • 上次更新2023/11/2 11:51:49
查看原帖
CSP-J T2 90pts 求助(悬关)
807826
zjpwdyf楼主2023/10/22 17:16

在洛谷上测的90分,小图灵上85分。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e5+5;
ll n,d,v[N],sum[N],a[N],ans,lst;
ll gsum(ll l,ll r){ return sum[r]-sum[l]; }
int main(){
	cin>>n>>d;
	for(ll i=2;i<=n;i++) scanf("%lld",v+i);
	for(ll i=1;i<=n;i++) scanf("%lld",a+i);
	for(ll i=2;i<=n;i++) sum[i]=sum[i-1]+v[i];
	ll i=1;
	while(i<n){
		ll j=i+1;
		while(j<n&&a[j]>a[i]) j++;
		ll need=ceil(1.0*(gsum(i,j)-lst)/d);
		if(need>0){
			ans+=need*a[i];
			lst=lst+need*d-gsum(i,j);
		}
		i=j;
	}
	cout<<ans;
	return 0;
}
2023/10/22 17:16
加载中...