bzoj1011 HNOI2008 遙遠的行星

2022-08-16 14:45:13 字數 946 閱讀 1946

直線上n顆行星,x=i處有行星i,行星j受到行星i的作用力,當且僅當i<=aj.此時j受到作用力的大小為 fi->j=

mi*mj/(j-i) 其中a為很小的常量,故直觀上說每顆行星都只受到距離遙遠的行星的作用。請計算每顆行星的受力

,只要結果的相對誤差不超過5%即可.

第一行兩個整數n和a. 1<=n<=10^5.0.01< a < =0.35,接下來n行輸入n個行星的質量mi,保證0<=mi<=10^7

n行,依次輸出各行星的受力情況

5 0.335

6240.000000

0.000000

0.000000

1.968750

2.976000

精確結果應該為0 0 0 2 3,但樣例輸出的結果誤差不超過5%,也算對

顯然直接暴力列舉答案基本上是會t的,我們注意到了a的值並不是太大,並且答案誤差在%5的範圍內。那麼原式可估算sum[x]*m[i]/(j-0.5i)。其中sum[i]為前i個星球的質量和。不過出這種題的人是什麼心態啊……

1 #include2 #include3 #include4 #include5 #include6 #include7

#define maxn 100010

8#define eps 1e-8

9using

namespace

std;

10int

n,t;

11double

m[maxn],sum[maxn];

12double

a,ans;

13int

main()

20for(i=1;i<=n;++i)

26else

29 printf("

%.6lf\n

",ans);30}

31return0;

32 }

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 ...

BZOJ 1011 HNOI2008 遙遠的行星

time limit 10 sec memory limit 162 mbsec special judge submit 2559 solved 923 submit status discuss 直線上n顆行星,x i處有行星i,行星j受到行星i的作用力,當且僅當i aj.此時j受到作用力的大小...