题目链接:
题意:
一个周长为10000的圆上等距离分布n个点,新增加m个点, 若使所有
分析:
看下样例,很容易想到是固定一个点不动,移动剩下
起初想啊,算出每个点的距离之后,把这
他的思想是将这个圆分成
但是这样会不会出现两个原始点对应同一个整数点呢?只有当两个数的差小于1的时候他们的
最后把坐标还原回来即可。
代码:
/*************************************************************************
> File Name: la3708.cpp
> Author: jiangyuzhu
> Mail: 834138558@qq.com
> Created Time: Sat 18 Jun 2016 03:22:49 PM CST
************************************************************************/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<stack>
using namespace std;
typedef pair<int, int>p;
const int maxn = 1e3, mod = 1e9 + 7, oo = 0x3f3f3f3f;
int main (void)
{
int n, m;
while(~scanf("%d%d", &n, &m)){
double ans = 0;
for(int i = 1; i < n; i++){
double pos = (double)i / n * (n + m);
ans += fabs(pos - floor(pos + 0.5));
}
ans = ans / (n + m) * 10000;
printf("%.4f
", ans);
}
}