这题的算法好神!Orzz
一个周长为10000的圆圈,一开始等距的安放着N个雕塑,现在想增加M个雕塑,使得雕塑之间还是等距,问坟墓最少移动的距离?
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#define F 10000
using namespace std;
int main()
{
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*F);//等比例扩大坐标
}
return 0;
}