题意:
有N个墓碑,等距离的分布在一个圆形墓地的周围,然后又要添加m个墓碑,最后要求所有的墓碑还是等距离,添加的墓碑可以放在任意位置,问之前的N个墓碑的最少移动距离之和是多少?
//要发现有一个点不要动
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main(int argc,char* argv[]){
int n,m;
while(~scanf("%d%d",&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;
}