bzoj1011 [HNOI2008]遥远的行星(分块+瞎搞)
2018-03-26 22:43
387 查看
这题解法我是给您跪了的orz
注意到误差在5%以内即可。
所以可以近似计算。每100个一起算即可。orz
不过这份代码才可以过bzoj orz
注意到误差在5%以内即可。
所以可以近似计算。每100个一起算即可。orz
#include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 100010 #define K 100 inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f; } int n,a ; double A; ll sum ; int main(){ // freopen("a.in","r",stdin); n=read();scanf("%lf",&A); for(int i=1;i<=n;++i) a[i]=read(),sum[i]=sum[i-1]+a[i]; for(int i=1;i<=n;++i){ int r=A*i,l=1;double ans=0; while(l+K<=r){ ans+=(sum[l+K]-sum[l-1])*1.0/(i-(l+l+K*1.0)/2);l+=K; }while(l<=r) ans+=a[l]*1.0/(i-l),++l; printf("%.6lf\n",ans*a[i]); } }
不过这份代码才可以过bzoj orz
#include<iostream> #include<cstdio> #include<cmath> #define eps 1e-8 using namespace std; int n; int M[1000005],T=20; double A,f[1000005]; inline int read() { int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int main() { n=read();scanf("%lf",&A); for(int i=1;i<=n;i++) M[i]=read(); for(int i=1;i<=T;i++) { int r=eps+floor(A*i); for(int j=1;j<=r;j++)f[i]+=(double)M[i]*M[j]/(i-j); } for(int i=T+1;i<=n;i++) { int l=eps+floor(A*(i-T)); int r=eps+floor(A*i); for(int j=l+1;j<=r;j++)f[i]+=(double)M[i]*M[j]/(i-j); f[i]+=(double)M[i]*(f[i-T]/M[i-T])*(i-T-(double)l/2)/double(i-(double)l/2); } for(int i=1;i<=n;i++) printf("%.6lf\n",f[i]); return 0; }
相关文章推荐
- 【bzoj1011】[HNOI2008]遥远的行星
- bzoj1011: [HNOI2008]遥远的行星
- 【估计】BZOJ1011(HNOI2008)[遥远的行星]题解
- [BZOJ 1011] [HNOI2008] 遥远的行星 【近似解】
- 【BZOJ】1011: [HNOI2008]遥远的行星(近似)
- bzoj1011: [HNOI2008]遥远的行星
- BZOJ 1011: [HNOI2008]遥远的行星( )
- 【BZOJ1011】【HNOI2008】遥远的行星 根据所允许的误差进行模糊DP
- [bzoj 1011] [HNOI2008]遥远的行星:近似算法(一种正确性显然的非乱搞的科学做法)
- 【BZOJ 1011】 [HNOI2008]遥远的行星
- BZOJ 1011([HNOI2008]遥远的行星-估计误差)
- 【bzoj1011】[HNOI2008]遥远的行星
- BZOJ1011 [HNOI2008]遥远的行星 【奇技淫巧】
- bzoj 1011: [HNOI2008]遥远的行星
- BZOJ1011 [HNOI2008]遥远的行星 【奇技淫巧】
- BZOJ 1011 [HNOI2008]遥远的行星
- 【BZOJ】【1011】【HNOI2008】遥远的行星
- BZOJ_1011_[HNOI2008]_遥远的行星_(近似)
- 【BZOJ1011】【HNOI2008】遥远的行星
- [BZOJ]1011 遥远的行星(HNOI2008)