求调
  • 板块灌水区
  • 楼主Brainless_zxc
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/23 20:29
  • 上次更新2023/11/2 11:40:28
查看原帖
求调
661274
Brainless_zxc楼主2023/10/23 20:29
#include<bits/stdc++.h>
using namespace std;
long long n,d,v[100005];
struct sta{
	long long a,num;
}station[100005];
long long nim=1145141919810,nimm;
long long sroad(long long l,long long r){
	long long zxc_ak_csp=0;
	for(int i=l;i<=r-1;i++){
		zxc_ak_csp+=v[i];
	}
	return zxc_ak_csp;
}
int main(){
	//freopen("road.in","r",stdin);
	//freopen("road.out","w",stdout);
	cin>>n>>d;
	for(int i=1;i<=n-1;i++){
		cin>>v[i];
	}
	for(int i=1;i<=n;i++){
		cin>>station[i].a;
		station[i].num=i;
		if(station[i].a<nim){
			nim=station[i].a;
			nimm=i;
		}
	}
	if(nimm==1){
		long long road=0;
		for(int i=1;i<=n-1;i++){
			road+=v[i];
		}
		cout<<ceil(road*1.0/d)*station[1].a<<endl;
		return 0;
	}
	long long now=1,all=0,cnt=1;
	double oil=0;
	while(now<=n){
		if(now+cnt<=n&&station[now].a>station[now+cnt].a){
			if(now+cnt==n){
				all+=ceil(sroad(now,now+cnt)*1.0/d-oil)*station[now].a;
				cnt=0;
				break;
			}
			all+=ceil(sroad(now,now+cnt)*1.0/d)*station[now].a;
			oil+=ceil(sroad(now,now+cnt)*1.0/d)-sroad(now,now+cnt)*1.0/d;
			now+=cnt;
			cnt=0;
		}
		cnt++;
	}
	cout<<all<<endl;
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

J组T2贪心思路是对的,但是只拿了20(锣鼓数据),但是特殊性质有30.急急急。

2023/10/23 20:29
加载中...