1388 - Graveyard (UVA)

Online Judge

刘汝佳代码中用了一个很高效的写法:fabs(pos - floor(pos + 0.5)) 来计算离pos最近的整数点的距离,学习。

我的代码如下:

#include 
#include 
const double len = 10000.0;

int n, m;

int main(){
    while(scanf("%d %d", &n, &m) == 2){
        double ans = 0;
        int cur = 1;
        for(int i = 1; i < n + m; ++i){
            if(len * cur / n >= len * i / (n + m) && len * cur / n < len * (i + 1) / (n + m)){
                ans += std::min(len * cur / n - len * i / (n + m), len * (i + 1) / (n + m) - len * cur / n);
                ++cur;
            }
            if(cur == n){
                break;
            }
        }
        printf("%.4f\n", ans);
    }
    return 0;
}

你可能感兴趣的:(UVA,算法)