BZOJ 1011 HNOI2008 遙遠的行星

2022-05-23 02:39:09 字數 1197 閱讀 3872

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受到作用力的大小為 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%,也算對

題解:這是什麼題。。。

注意到本題的重要條件就是誤差,那麼窩萌就亂搞好了。因為當行星的相距很遠時,作用力會非常小,完全可以估算,即把前1-now的行星到當前行星的距離都算做到now/2的距離,o(1)求解。

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

#define pau putchar(' ')

8#define ent putchar('\n')

9using

namespace

std;

10const

int maxn=100000+10;11

const

double eps=1e-8;12

int n;double

a,ans[maxn],m[maxn],pre[maxn];

13void

init()

18void

work()

25 pre[0]=0.0;for(int i=1;i<=n;i++)pre[i]=pre[i-1]+m[i];

26for(int i=2001;i<=n;i++)

30return;31

}32void

print()

36int main()

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

bzoj1011 HNOI2008 遙遠的行星

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