算法入门之移动雕塑

来源:互联网 发布:淘宝直播看不到聊天 编辑:程序博客网 时间:2024/04/28 00:22

在周长为10000的圆上等距分布着n的雕塑,现在有m个雕塑加入,希望n+m个雕塑在圆周上均匀分布,要求移动的总距离尽量少

#include <iostream>#include <cmath>#include <cstdio>#include <cstring>#include <algorithm>#include <iomanip>using namespace std;const int M=10005;int main(){int n,m;while(scanf("%d%d",&n,&m)==2){double ans=0.0;for(int i=1;i<n;i++){double pos=(double)i/n*(n+m);//计算每个需要移动的雕塑坐标 ans+=fabs(pos-floor(pos+0.5))/(n+m);//累计移动的位置 }cout<<fixed<<setprecision(4)<<ans*10000<<endl;//等比例扩大坐标 }return 0;}


0 0