0
点赞
收藏
分享

微信扫一扫

UVA - 1388 Graveyard 四舍五入


题目大意:有一个圆,在这个圆上有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 条评论