被精度缺失做局了
  • 板块P1404 平均数
  • 楼主shy_lihui
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/6/15 14:02
  • 上次更新2025/6/15 14:11:40
查看原帖
被精度缺失做局了
1053122
shy_lihui楼主2025/6/15 14:02

77pts

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
double a[100005];
double sum[100005];
bool check(double mid)
{
	for(int i=1;i<=n;i++)
	{
		sum[i]=sum[i-1]+a[i]-mid;
	}
	double ans=-1e9,minn=1e9;
	for(int i=m;i<=n;i++)
	{
		minn=min(minn,sum[i-m]);
		ans=max(ans,sum[i]-minn);
	}
	return ans>=0;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	double l=0,r=1e9;
	double ans;
	while(r-l>=1e-9)
	{
		double mid=(l+r)/2;
		if(check(mid))
		{
			ans=mid;
			l=mid;
		}
		else
		{
			r=mid;
		}
	}
	cout<<round(1000*ans);
	return 0;
}

输出的如果下取整是43pts,ceil是57pts

转整形也是43

2025/6/15 14:02
加载中...