蒟蒻在线求助 QWQ 15分
查看原帖
蒟蒻在线求助 QWQ 15分
1047625
Lolitan楼主2024/9/10 23:31

问题就是加了break就会TLE 不加答案肯定错 我怀疑我循环那里跳站台有问题 求指出

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,nn[200000],v[200000],jq[200000],ans,d,minno,num,zv,minn,xd,mv,xz,yl;
int main(){
	cin>>n>>d;
	for(int i=1;i<=n-1;i++){
		cin>>v[i];
		zv+=v[i];
	}
	for(int i=1;i<=n;i++){
		cin>>jq[i];
		minno=jq[1];
		if(jq[i]<minno)
			num++;
	}
	if(num==0){
		if(zv%d==0)
			ans=zv/d*jq[1];
		else
			ans=zv/d*jq[1]+jq[1]; 
		cout<<ans;
		return 0;
	}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			if(jq[j]<jq[i]){
				minn=jq[j];
				xd=j;
				for(int k=i;k<j;k++){
					mv+=v[k];
				}
				if(mv%d==0){
					ans+=(mv-yl)/d*jq[i];
					yl=yl-mv+d*(mv/d);
				}else{
					ans+=(mv-yl)/d*jq[i]+jq[i];
					yl=yl-mv+d*(mv/d+1);
				}
				break;
			}
		}
		i=xd;
	}
	cout<<ans;
	return 0;
}
2024/9/10 23:31
加载中...