UVA - 1388 Graveyard 四舍五入

来源:互联网 发布:网络推广的工具 编辑:程序博客网 时间:2024/05/16 13:04

题目大意:有一个圆,在这个圆上有n个分布均匀的石像,现在加入m个石像,希望所有的石像在圆上分布均匀,求移动原有石像的最小距离和

解题思路:一个石像的位置保持不变,第i个石像的位置再i/n处,加入m个石像后,这个石像就要移动到(m+n)*i/n/(n+m),则其移动的距离就是这两个的差

#include<cmath>#include<cstdio>int main() {int n, m;while(scanf("%d%d",&n, &m) == 2) {double ans = 0.0;for(int i = 0; i < n; i++) {double t = double(m + n) * i / n;ans += fabs(t - floor(t+0.5)) / (m + n);}printf("%.4lf\n",ans * 10000);}return 0;}



0 0