比赛的时候的代码,感觉思路对了,但请问为什么只得了三十
查看原帖
比赛的时候的代码,感觉思路对了,但请问为什么只得了三十
665585
weizhituteng2楼主2023/11/3 23:20
#include<bits/stdc++.h>
using namespace std;
long long n,d;
long long arr[1000000+1];
long long jvli[1000000+1];
long long dp[1000000+1];
long long idex[1000000+1];
long long sum = 0;
long long shengyvjvli;
//long long zong;
long long jiage;
long long minn = 1e18;
long long t;
int main(){
	cin>>n>>d;
	for(int i=1;i<n;i++){
		cin>>jvli[i];
	}
	for(int i=1;i<=n;i++){
		cin>>arr[i];
    }
jiage=arr[1];
	for(int i=2;i<=n;i++){
			jiage = min(arr[i-1],jiage);
		long long xvyaogeshu;
		if(shengyvjvli<=jvli[i-1]){
		xvyaogeshu = (long long)(ceil((jvli[i-1]*1.0-shengyvjvli)/(d*1.0)));
		shengyvjvli = 0;	
		}else{
			xvyaogeshu = 0;
			shengyvjvli-=jvli[i-1];
		}
		//cout<<" "<<xvyaojvli<<" "<<jiage<<endl;
		if(xvyaogeshu*d>jvli[i-1]){
		shengyvjvli += xvyaogeshu*d-jvli[i-1];	
		}
        //cout<<"shengyv"<<shengyvjvli<<endl; 
		sum+=xvyaogeshu*jiage;
	}
	cout<<sum<<endl;
	return 0;
}
2023/11/3 23:20
加载中...