bzoj1011 遥远的行星
bzoj1011 遥远的行星
原题链接
题解
一道真正的玄学题。。。。
其实这题根本没法做
首先暴力这么跑:$$ans(s)=\sum_{i=1}^{\lfloor As\rfloor}\frac{M_sM_i}{s-i}$$
暴力复杂度\(O(n^2)\)
虽然跑不满,但常数至少\(\frac{0.35}{2}\)
所以玄学做法才能过。。。
有一句话“只要结果的相对误差不超过5%即可.”
而且样例输出还提醒了你。
那么对于一段\([l,r]\),和点\(s\),
可以近似看作
$$\sum_{i=l}^{r}\frac{M_sM_i}{s-\frac{l+r}{2}}\]
\(r-l\)不大的话误差就不大,所以把\([1,\lfloor As\rfloor]\)分成很多个区间,每个区间长为C(C设多少都可以,我设的80,只要不T不WA就行了),用上面方法算这些区间,剩下的就爆算。
Code
// It is made by XZZ
#include<cstdio>
#include<algorithm>
using namespace std;
#define rep(a,b,c) for(rg int a=b;a<=c;a++)
#define drep(a,b,c) for(rg int a=b;a>=c;a--)
#define erep(a,b) for(rg int a=fir[b];a;a=nxt[a])
#define il inline
#define rg register
#define vd void
typedef long long ll;
il int gi(){
rg int x=0;rg char ch=getchar();
while(ch<'0'||ch>'9')ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x;
}
#define db long double
#define eps 1e-6
const int maxn=1e5+2;
db M[maxn],S[maxn];
int main(){
int n=gi(),C=30;
db A;
scanf("%Lf",&A);
rep(i,1,n)scanf("%Lf",&S[i]),M[i]=M[i-1]+S[i];
rep(s,1,n){
db prt=0;
int lim=(int)(A*s+eps),k=lim/C;
rep(i,1,k)prt+=(M[i*C]-M[i*C-C])/(s-(i*C+i*C-C+1)*0.5);
rep(i,k*C+1,lim)prt+=S[i]/(s-i);
printf("%.10Lf\n",prt*S[s]);
}
return 0;
}
bzoj1011 遥远的行星的更多相关文章
- 【BZOJ1011】【HNOI2008】遥远的行星(乱搞)
1011: [HNOI2008]遥远的行星 Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 1444 Solved ...
- bzoj1011 [HNOI2008]遥远的行星
1011: [HNOI2008]遥远的行星 Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 2480 Solved ...
- 【BZOJ1011】【HNOI2008】遥远的行星
奇奇怪怪突然出戏的奇葩题 原题: 直线上N颗行星,X=i处有行星i,行星J受到行星I的作用力,当且仅当i<=AJ.此时J受到作用力的大小为 Fi->j=Mi*Mj/(j-i) 其中A为很小 ...
- 【bzoj1011】[HNOI2008]遥远的行星
1011: [HNOI2008]遥远的行星 Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 3711 Solved ...
- BZOJ1011:[HNOI2008]遥远的行星(乱搞)
Description 直线上N颗行星,X=i处有行星i,行星J受到行星I的作用力,当且仅当i<=AJ.此时J受到作用力的大小为 Fi->j=Mi*Mj/(j-i) 其中A为很小的常量, ...
- BZOJ1011 [HNOI2008]遥远的行星 【奇技淫巧】
1011: [HNOI2008]遥远的行星 Time Limit: 10 Sec Memory Limit: 162 MBSec Special Judge Submit: 5058 Solve ...
- [bzoj1011](HNOI2008)遥远的行星(近似运算)
Description 直 线上N颗行星,X=i处有行星i,行星J受到行星I的作用力,当且仅当i<=AJ.此时J受到作用力的大小为 Fi->j=Mi*Mj/(j-i) 其中A为很小的常量, ...
- 【BZOJ】【1011】【HNOI2008】遥远的行星
神奇的思路题QAQ 玛雅看到这题我就醉了,什么玩意……5%的误差?果断膜拜@ydc神犇的题解: 就是因为不清楚如何应用那个答案误差不超过5%啦. 从没见过这么诡异的题一下就懵了,问到了方法之后都还半信 ...
- BZOJ_1011_[HNOI2008]_遥远的行星_(近似)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1011 \(n\)个行星,第\(i\)颗行星的质量为\(m_i\),给出一个很小的常数\(A\) ...
随机推荐
- 第04章-VTK基础(7)
[译者:这个系列教程是以Kitware公司出版的<VTK User's Guide -11th edition>一书作的中文翻译(出版时间2010年.ISBN: 978-1-930934- ...
- 关于tomcat无法启动问题详解
通常情况tomcat无法启动,有这么几个原因?(1)代码有问题; (2)tomcat有问题; (3)端口被占; (4)动态web项目为3.0: (5)java环境运行内存不足; 这是比较常见的问题.解 ...
- java从字符串中提取数字的简单实例
随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...
- Basic Classifiers and Loss Functions
Linear Classifier and Hing Loss (or Multiclass SVM Loss) Linear Mapping (Score function) Linear Clas ...
- 提交json串格式的POST请求
提交json串格式的POST请求 Action() { web_reg_save_param("retCode", "LB=retCode\":\"& ...
- ACM-SG函数之S-Nim——hdu1536 hdu1944 poj2960
S-Nim Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- Spring异步-@Async注解
Spring异步:@Async注解 使用@Async前需要开启异步支持:@EnableAsync 注解和XML方式 @Async返回值的调用:需要使用Future包装 1.如果没有使用Future包装 ...
- Python 学习笔记(十三)Python函数(二)
参数和变量 >>> def foo(a,b): #函数是一个对象 return a+b >>> p =foo #对象赋值语句.将foo函数赋值给p这个变量 > ...
- Java并发编程(十)死锁
哲学家进餐问题 并发执行带来的最棘手的问题莫过于死锁了,死锁问题中最经典的案例就是哲学家进餐问题:5个哲学家坐在一个桌子上,桌子上有5根筷子,每个哲学家的左手边和右手边各有一根筷子.示意图如下: 哲学 ...
- 一图看懂Spring获取对象与java new对象区别
Spring获取对象与java new对象的区别,图片被压缩了,请点击图片放大查看