題目鏈接:
題意:
一個周長爲10000的圓上等距離分佈n個點,新增加m個點, 若使所有
分析:
看下樣例,很容易想到是固定一個點不動,移動剩下
起初想啊,算出每個點的距離之後,把這
他的思想是將這個圓分成
但是這樣會不會出現兩個原始點對應同一個整數點呢?只有當兩個數的差小於1的時候他們的
最後把座標還原回來即可。
代碼:
/*************************************************************************
> File Name: la3708.cpp
> Author: jiangyuzhu
> Mail: [email protected]
> 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\n", ans);
}
}