zoukankan      html  css  js  c++  java
  • Graveyard LA3708

    白书第一章例题4

    思维。

    先固定一点不动,假设最后一共N个点,那么编号为0,1...N-1,

    0不动,原来的n个点分别占据i/n*N的位置(记为pos),移动到pos四舍五入的位置即可。

    证明一:有一个坐标未移动,见例题3UVA11300

    证明二:没有点移动到相同位置。

    假设xy移动到相同位置,那么他们的pos四舍五入相同,最多差0.9999,小于1.但是根据我们的做法,移动前坐标相差大于一,故不可能。

    #include<cstdio>
    #include<cmath>
    using namespace std;
    
    int main ()
    {
        int n ,m;
        double Ans;
        while(~scanf("%d %d" ,&n ,&m))
        {
            Ans = 0;
            for(int i = 1 ;i < n ;i ++)
            {
               double pos = i * 1.0 / n * (n + m);
               double now = abs(pos - int(pos + 0.5)) / (n + m);
               Ans += now;
            }
            printf("%.4lf
    " ,Ans * 10000);
        }
        return 0;
    }
  • 相关阅读:
    Linux命令(一)
    数据库SQL学习(一)
    Eclipse
    VsCode支持的markdown语法参考(一)
    常用算法Tricks(一)
    dispose方法的使用
    收藏一个链接
    我还不知道取什么名字
    NioSocket的用法
    随便乱塞塞2~
  • 原文地址:https://www.cnblogs.com/lqerio/p/9860922.html
Copyright © 2011-2022 走看看