您的位置:首页 > 其它

UVA - 1388 Graveyard 四舍五入

2015-02-24 11:12 381 查看
题目大意:有一个圆,在这个圆上有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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: