• 题面描述

    • 直线上\(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;
}

天助自助者

随机推荐

  1. 3.3.4深度剖析ConcurrentLinkedQueue

    队列.链表之类的数据结构及其常用.Java中,ArrayList和Vector都是使用数组作为其内部实现.两者最大的不同在于:Vector是线程安全的,而ArrayList不是.此外LinkedLis ...

  2. C#6.0特性(快来围观)(转)

    出处:http://www.cnblogs.com/HJL-Blog/p/4457632.html 说明一下,很多博友一进来就认为仅仅是语法糖,C#语法的更新,代表着它的进步,语法糖是为了让我们更好的 ...

  3. jQuary总结2: jQuery选择器

    1  什么是jQuery选择器 获取页面元素,并且把页面元素包装成jQuery对象的方式 2 为什么要学习jQuery选择器 为了更加方便的获取页面上的元素,并且将元素包装起来,使我们编写程序时更加便 ...

  4. 编写高质量代码改善C#程序的157个建议——建议95:避免在构造方法中调用虚成员

    建议95:避免在构造方法中调用虚成员 在构造方法中调用虚方法会带来一些意想不到的错误,虽然这种方法不常见,但还是需要注意这类陷阱. static void Main() { American amer ...

  5. 编写高质量代码改善C#程序的157个建议——建议87:区分WPF和WinForm的线程模型

    建议87:区分WPF和WinForm的线程模型 WPF和WinForm窗体应用程序都有一个要求,那就是UI元素(如Button.TextBox等)必须由创建它的那个线程进行更新.WinForm在这方面 ...

  6. c# MSMQ 消息队列

    转  消息队列 http://www.cnblogs.com/anbylau2130/p/3469512.html

  7. Windows下Mongodb安装及配置(转载)

    转载(https://blog.csdn.net/liang377122210/article/details/79062681) MongoDB的安装很简单,设置好安装路径后,一直Next直到安装结 ...

  8. 简单的jquery左侧导航栏和页面选中

    这里是要实现导航的左侧并选中的,此功能需引用jquery 左侧导航: <div class="box"> <ul class="menu"&g ...

  9. WebApi与Mvc的区别

    ASP.NET Mvc是基于ASP.NET管道设计的框架,但是Mvc应用程序只能在iis中运行,而WebApi框架既可以寄宿在IIs上也可以在Self-Host上进行处理. Mvc和webapi都有相 ...

  10. python3.5在内存中获取远程图片尺寸

    自已看看,用于获取选程图片的尺寸 >>> from io import BytesIO>>> import requests as rs>>> f ...