社区讨论

妹子求助:求差错!

P1404平均数参与者 9已保存回复 16

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
16 条
当前快照
1 份
快照标识符
@lod8ol4s
此快照首次捕获于
2023/10/31 02:34
2 年前
此快照最后确认于
2023/11/05 13:01
2 年前
查看原帖
本人刚学二分答案
CPP
#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;
}

回复

16 条回复,欢迎继续交流。

正在加载回复...