J T2 求调
  • 板块学术版
  • 楼主xiaoyang111
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/21 17:13
  • 上次更新2023/11/2 12:13:28
查看原帖
J T2 求调
890311
xiaoyang111楼主2023/10/21 17:13
//O(n)tan xin
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
int main(){
// 	freopen("road.in","r",stdin);
// 	freopen("road.out","w",stdout);
	int n,d;
	cin >> n >> d;
	vector<int> v(n-1);
	for (int i=0;i<n-1;++i){
		cin >> v[i];
	}
	vector<int> a(n);
	for (int i=0;i<n;++i){
		cin >> a[i];
	}
	long long ans=0;
	int mn=100000000;
	long long sm=0;//pao le duo yuan
	long double temp=0;//yu xia duo shao sheng
	for (int i=0;i<n-1;++i){
		if (a[i]<mn){//you zui xiao de
			sm-=d*temp;
			long long t=ceil(1.0*sm/d);//duo shao sheng
			temp=t-1.0*sm/d;//hai sheng duo shao
			ans+=t*mn;//da an jia qi lai
			sm=0;
			mn=a[i];
		}
		sm+=v[i];
	}
	sm-=d*temp;
	long long res=ans+ceil(1.0*sm/d)*mn;
	cout<<res<<endl;
// 	fclose(stdin);
// 	fclose(stdout);
	return 0;
}

民间95pts

2023/10/21 17:13
加载中...