题意:墓地原来有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;
}