84分代码求调
查看原帖
84分代码求调
809339
Fikuzza楼主2024/8/26 15:06
#include<bits/stdc++.h>
using namespace std;
int n,k,a[300005],b[300005];
struct DP{
	int ch,bch; 
}dp[300005]; 
int main()
{
	cin>>n>>k>>a[0];
	b[0]=a[0];
	for(int i=1;i<n;i++){
		cin>>a[i];
		b[i]=b[i-1]+a[i];
	}
	dp[k-1].ch=b[k-1];
	dp[k-1].bch=k;
	for(int i=k;i<n;i++){
//		for(int j=i;j>i-k;j--)
//			dp[i].ch+=a[j];
		dp[i].ch=b[i]-b[i-k];
		dp[i].bch=k;
		if((dp[i-1].ch+a[i])*1.0/(dp[i-1].bch+1)>dp[i].ch*1.0/dp[i].bch)
			dp[i].ch=dp[i-1].ch+a[i],dp[i].bch=dp[i-1].bch+1;
	}
	double maxx=-1;
	for(int i=k;i<n;i++){
		maxx=max(dp[i].ch*1.0/dp[i].bch,maxx);
	}
	printf("%.6f",maxx);
	return 0;
}

2024/8/26 15:06
加载中...