BZOJ P1011[HNOI2008]遥远的行星

来源:互联网 发布:w3school node 编辑:程序博客网 时间:2024/05/17 06:09

大概是近似估算,由于只有距离在一定远的情况下才会有贡献,所以当距离十分大的时候直接估算

一定范围暴力求

#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>using namespace std;long long a[100005];double f[100005],arf;int n;int main(){scanf("%d%lf",&n,&arf);    for(int i=1;i<=n;i++){    scanf("%d",&a[i]);a[i]+=a[i-1];}    for(int i=1;i<=min(3000,n);i++){    for(int j=1;j<=(int)i*arf;j++){    f[i]+=(a[j]-a[j-1])*(a[i]-a[i-1])/(i-j);}}    for(int i=3001;i<=n;i++){        int x=(int)i*arf;        f[i]=(double)(a[x]*(a[i]-a[i-1]))/(i-x/2);    }    for(int i=1;i<=n;i++){    printf("%.6f\n",f[i]);}    return 0;}/*in:5 0.335624out:0.0000000.0000000.0000001.9687502.976000*/


1 0