$bzoj1011-HNOI2008$ 遥远的行星 其他
题面描述
- 直线上\(N\)颗行星,\(X=i\)处有行星\(i\),行星\(j\)受到行星\(i\)的作用力,当且仅当\(i<=A_j\)。此时J受到作用力的大小为\(F_{i\to j}=\frac{Mi*Mj}{j-i}\) 其中\(A\)为很小的常量,故直观上说每颗行星都只受到距离遥远的行星的作用。请计算每颗行星的受力,只要结果的相对误差不超过5%即可.
输入格式
- 第一行两个整数\(N\)和\(A\)。\(1\leq N\leq10^5,0.01<a\leq 0.35\),接下来\(N\)行输入\(N\)个行星的质量\(M_i\),保证\(0\leq M_i\leq 10^7\)
输出格式
- \(N\)行,依次输出各行星的受力情况
题解
这种题根本没意义
注意到题目中有 误差\(\leq 5\%\) 的字眼,因此当我们枚举的\(i\)相当大后,我们便不必精确计算,而只要预估即可
当\(i\leq10^3\)时,我们按照题面给出的计算式 计算。
当\(i\geq 10^3\)时
- \[\sum_{j=1}^r \frac{M_j*M_i}{i-j}\\
\approx\sum_{j=1}^r \frac{M_j*M_i}{i-0.5*r}\\
=\frac{sum_j*M_i}{i-0.5*r}\ (sum_j=\sum_{x=1}^j M_x)
\]
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int MAXN=1e5+5;
const double eps=1e-8;
int n;
double a,m[MAXN],s[MAXN];
int main(){
scanf("%d%lf",&n,&a);
for (int i=1;i<=n;i++) scanf("%lf",&m[i]);
for (int i=1;i<=n;i++){
s[i]=s[i-1]+m[i];
int r=(int)floor(i*a+eps);
double ret=0;
if (i<=1000){
for (int j=1;j<=r;j++) ret+=m[j]*m[i]/(double)(i-j);
}
else ret=s[r]*m[i]/(i-0.5*r);
printf("%.6lf\n",ret);
}
return 0;
}
天助自助者
随机推荐
- mysql json格式数据处理
1.查询字段所对应的值: SELECT c.result_http->"$.create_time",json_extract(c.result_http,"$.e ...
- Inno Setup创建快捷方式跟快速运行栏快捷方式
[Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescrip ...
- java IO其他流
1.内存操作流,ByteArrayInputStream和 ByteArrayOutputStream 案例:将小写转化为大写 /* * 内存操作流,将大写字母转化为小写字母(ByteArrayInp ...
- PreTranslateMessage()函数捕获键盘按键消息
01. PreTranslateMessage函数,常用于屏蔽MFC对话框中默认的Enter和ESC消息 函数原型:BOOL PreTranslateMessage(MSG* pMsg) 用法举例: ...
- Time 模块中asctime()、time()、localtime()、ctime()、gmtime()的用法
Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的: time.asctime([tupletime]) 接受时间元组并返回一个可读的形式“Tue Dec 11 18:07:14 2 ...
- SQLServer客户端连接工具(支持2000,20005,2008)
绿色版本, 体积小(不到2M), 支持数据库版本2000 2005 2008 界面仿最经典的SQLServer2000: 下载地址:http://download.csdn.net/detail/gg ...
- 201621123012《Java程序设计》第八周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 答:如果为空的时候 ...
- 洛谷P2495 [SDOI2011]消耗战(虚树)
题面 传送门 题解 为啥一直莫名其妙\(90\)分啊--重构了一下代码才\(A\)掉-- 先考虑直接\(dp\)怎么做 树形\(dp\)的时候,记一下断开某个节点的最小值,就是从根节点到它的路径上最短 ...
- mysqli扩展库---------预处理技术
1, PHP程序与mysql之间处理sql语句流程如下,减少执行时间方式有三种: ① 减少php发送sql次数: ② 减少php与mysql之间网络传输时间: ③ 减少mysql的编译时间: 2, 预 ...
- XMPP后台搭建
XMPP的环境搭建 1.下载MySQL 登录myql官网,点击页面下面的按钮 然后安装. 2.安装MySQL图形化管理工具mysql-workbench 同样进入mysql的官网, 下载 http:/ ...