P3198 HNOI2008 遙遠的行星

2022-05-19 08:28:35 字數 868 閱讀 2440

傳送門

發現 $a$ 不大,又允許較大的誤差,考慮亂搞

考慮求出每個位置的答案,因為有 $1e5$ 個位置,所以每個位置差不多可以計算 $100$ 次貢獻 

所以把每個可以貢獻的位置盡量均勻分成 $100$ 個塊,同乙個塊內答案一起算

本來乙個位置的貢獻是 $m[i]m[j]/(i-j)$ ,那現在乙個塊的貢獻就可以看成 $m[i](sum[r]-sum[l-1])/(i-mid)$,就是把一段的貢獻放在一起算,下標就取中位數

這樣誤差就在 $5\%$ 以內了..

#include#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;typedef

double

db;inline

intread()

while(ch>='

0'&&ch<='

9')

return x*f;

}const

int n=1e5+7,t=100

;const db eps=1e-8

;int

n,a[n],sum[n];

db a,ans[n];

intmain()

int l=1,r,p=r/t,t=r%t;

for(int j=1;j<=t;j++)

}for(int i=1;i<=n;i++) printf("

%.6lf\n

",ans[i]);

return0;

}

HNOI2008 遙遠的行星

直線上n顆行星,x i處有行星i,行星j受到行星i的作用力,當且僅當i aj.此時j受到作用力的大小為 fi j mi mj j i 其中a為很小的常量,故直觀上說每顆行星都只受到距離遙遠的行星的作用。請計算每顆行星的受力,只要結果的相對誤差不超過5 即可.輸入格式 第一行兩個整數n和a.1 n 1...

bzoj1011 HNOI2008 遙遠的行星

bzoj1011 hnoi2008 遙遠的行星 emmm玄學誤差題 之前有做過一道min hash的trick題,有空整理一下 坑 a的上限0.35 f i sum frac 暴力複雜的 n 0.35n 過不掉對於乙個i來說若可以 o1 求出 sum frac i a 的近似值 就可利用m的字首和o...

BZOJ1011 HNOI2008 遙遠的行星

bzoj1011 hnoi2008 遙遠的行星 直線上n顆行星,x i處有行星i,行星j受到行星i的作用力,當且僅當i aj.此時j受到作用力的大小為 fi j mi mj j i 其中a為很小的常量,故直觀上說每顆行星都只受到距離遙遠的行星的作用。請計算每顆行星的受力 只要結果的相對誤差不超過5 ...