思维锻炼LA3708

来源:互联网 发布:网络销售做什么 编辑:程序博客网 时间:2024/05/01 08:41

题意:墓地原来有n个雕塑,现在想增加到n+m个,问最小移动的距离。

思路:每个雕像肯定是移动到离他最近的那个距离的位置上,通过缩小坐标可以简化问题。

下面是代码:

#include<iostream>#include<cmath>#include<cstdio>using namespace std;int main(){    int n,m;    while(cin>>n>>m)    {        double ans=0;        for(int i=1;i<n;i++)        {            double pos=double(i)/n*(n+m);            ans+=fabs(pos-floor(pos+0.5))/(n+m);        }        printf("%.4lf\n",ans*10000);    }    return 0;}


0 0