bzoj1011: [HNOI2008]遥远的行星
其实我觉得有些题不会做见见世面也是挺好的。。//蒟蒻本性
用一个T,在T范围的暴力求出,T范围之外的因为比较小所以近似。
#include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; const int maxn = 100000 + 10; const int T = 100; const double eps = 1e-8; int m[maxn],n,l,r; double f[maxn],a; int main() { scanf("%d %lf",&n,&a); for(int i=1;i<=n;i++) scanf("%d",&m[i]); for(int i=1;i<=T;i++) { f[i]=0; r = (int)(eps+floor(a*i)); for(int j=1;j<=r;j++) f[i] += 1.0*m[i]*m[j]/(i-j); } for(int i=T+1;i<=n;i++) { f[i]=0; r = (int)(eps+floor(a*i)); l = (int)(eps+floor(a*(i-T))); for(int j=l+1;j<=r;j++) f[i] += 1.0*m[i]*m[j]/(i-j); f[i] += 1.0*m[i]*(f[i-T]/m[i-T])*(i-T-0.5*l)/(i-0.5*l); } for(int i=1;i<=n;i++) printf("%.6lf\n",f[i]); return 0; }