直線上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受到作用力的大小...