/*
* LA_3708.cpp
*
* Created on: 2013年11月17日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
double ans = 0.0;
int i;
double pos;
for(i = 1 ; i < n ; ++i){
/**
* floor():向下取整
* floor(pos+0.5):四舍五入
* fabs():求绝对值
*/
pos = (double)i/n*(n+m);//求除了原点,每个点的初始坐标.*(n+m)是为了求每一个圆圈的初始为周长伟(n+m0的圆圈
ans += fabs(pos - floor(pos+0.5))/(n+m);// /(n+m)是为了将圆圈的长度恢复为单位1
}
printf("%.4lf\n",ans*10000);
}
return 0;
}
(阶段四1.4)LA 3708 Graveyard(一个圆圈上有n个点,新加入m个点,求每个点的最小移动距离)
最新推荐文章于 2020-11-09 17:51:07 发布