Average Sleep Time
题意:大概就是求sum(ai+...ai+n-k)/(n-k+1).....(i=1--k)
题意:大概就是求sum(ai+...ai+n-k)/(n-k+1).....(i=1--k)
题解:直接维护前缀和,带入公式即可,注意用long long保证精度,double会 损失精度
Code:
#include<bits/stdc++.h>
#define ll long long
ll sum[2*100005],a[2*100005];
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=1; i<=n; i++)
{
scanf("%I64d",&a[i]);
sum[i]=sum[i-1]+a[i];
}
ll res=0;
sum[0]=0;
for(int i=k; i<=n; i++)
{
res+=(sum[i]-sum[i-k]);
}
printf("%.10lf\n",(double)res/(n-k+1));
}
return 0;
}