BZOJ1011
来源:互联网 发布:步惊云软件下载 编辑:程序博客网 时间:2024/06/02 08:48
1011: [HNOI2008]遥远的行星
思路:乱搞题 不要想着算出正确答案……
对于每个行星i,我们计算K=A*i
如果K比较小,我们直接暴力计算每一个行星对行星i的答案贡献
那K比较大呢?
不虚,我们观察计算式中每一个分母
如果K很大,而A又很小,所以i很大
所以我们如果把所有的(i-j)换成(i-k/2),答案差不了多少
然后就可以用前缀和加速计算啦!
代码:
#include <cstring>#include <cmath>#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#define eps 1e-8using namespace std;const int MAXN=100010;int n;double a;double sum[MAXN];double m[MAXN];void init(){ cin>>n>>a; for (int i=1;i<=n;i++) { scanf("%lf",&m[i]); sum[i]=sum[i-1]+m[i]; } for (int i=1;i<=n;i++) { int k=(int)(a*(double)(i)+eps); double ans=0; if (k<=67) { for (int j=1;j<=k;j++) ans+=(m[i]*m[j])/(double)(i-j); } else ans=(sum[k]*m[i])/(double)(i-((1+k)>>1)); printf("%.6lf\n",ans); } return ;}int main(){ init(); return 0;}
0 0
- BZOJ1011
- BZOJ1011
- bzoj1011
- BZOJ1011-1020
- 【BZOJ1011】遥远的行星
- 【BZOJ1011 || HNOI2008】遥远的行星
- bzoj1011: [HNOI2008]遥远的行星
- [BZOJ1011][HNOI2008]遥远的行星
- 【bzoj1011】[HNOI2008]遥远的行星
- bzoj1011 [HNOI2008]遥远的行星
- bzoj1011: [HNOI2008]遥远的行星
- bzoj1011 [HNOI2008]遥远的行星
- bzoj1011 [HNOI2008]遥远的行星
- BZOJ1011: [HNOI2008]遥远的行星 乱搞
- [BZOJ1011][HNOI2008]遥远的行星(近似)
- 【估计】BZOJ1011(HNOI2008)[遥远的行星]题解
- BZOJ1011(HNOI2008)[遥远的行星]--估计
- 【BZOJ1011】【HNOI2008】遥远的行星 误差分析
- hdu1671
- what-to-tune-in-mysql-56-after-installation.html
- 关闭对话框重启还保留着上次的数据--MFC中如何把数据保存到注册表
- poj 2421 Constructing Roads【kruskal & prim】
- MVC设计模式,预处理,转码(2015.8.11)
- BZOJ1011
- 做一个像向日葵一样的项目经理——激励你的团队
- POJ 3617 Best Cow Line(贪心)
- javaIO流(打印流--和--序列流)
- UIView中使用了NSNotificationCenter之后,重入时会发生Crash的现象
- i2c信号的ACK与NACK
- Oracle三范式参考
- web下乱码处理
- java面向对象之封装、继承、多态