妹子求助:求差错!
  • 板块P1404 平均数
  • 楼主yazzkl
  • 当前回复16
  • 已保存回复16
  • 发布时间2020/9/18 21:49
  • 上次更新2023/11/5 13:01:09
查看原帖
妹子求助:求差错!
100151
yazzkl楼主2020/9/18 21:49

本人刚学二分答案

#include<bits/stdc++.h>
#define yaz 100001
using namespace std;
double a[yaz],b[yaz],sum[yaz];
int i,n,len;
double mid;
signed main(){
	cin>>n>>len;
	for(i=1;i<=n;++i) scanf("%lf",&a[i]);
	double l=0,r=1e6;
	while(r-l>1e-5){
		mid=(r+l)/2;
		for(i=1;i<=n;i++) b[i]=a[i]-mid;
		for(i=1;i<=n;i++){
			sum[i]=(sum[i-1]+b[i]);
			double ans=-1;
			double xiao=1e6;
			for(i=len;i<=n;i++){
				xiao=min(xiao,sum[i-len]);
				ans=max(ans,sum[i]-xiao);
			}
			if(ans>=0) l=mid;else r=mid;
		}
	}
	cout<<int(r*1000)<<endl;return 0;
}

2020/9/18 21:49
加载中...