zoukankan      html  css  js  c++  java
  • Codeforces Round #204 (Div. 2): C

    这个题是个数学题;

    2n个数,要求n个向上取整,n个向下取整,然后要求最后的数列之和与初始数列之和的差异最小;

    差异di=(1-ai)-(bi-0);

    容易看出ai与bi 的符号相同,故可以一次性将他们全部处理掉;

    最后用一个整数减去上面一步得到的数;得到的最小值就是我们所需要的;

    代码:

     1 #include<cstdio>
     2 #include<cmath>
     3 #include<algorithm>
     4 using namespace std;
     5 int n,cnt;
     6 double x,ans;
     7 int main()
     8 {
     9     scanf("%d",&n);
    10     double res=99999999;
    11     for(int i=0; i<2*n; i++)
    12     {
    13         scanf("%lf",&x);
    14         double y=x-floor(x);
    15         if(y>0)ans+=y;
    16         else cnt++;
    17     }
    18     for(int i=n-cnt;i<=min(n,2*n-cnt);i++)
    19         res=min(res,fabs(i-ans));
    20     printf("%.3lf
    ",res);
    21     return 0;
    22 }
    View Code
  • 相关阅读:
    IDEA的JDBC报错解决
    java注解
    Java反射
    javaIO
    工程师的认知
    前端的一些性能提升
    ES6函数的扩展
    2020新年愿望
    高维护性的javascript
    Chrome Dev tools的几点小技巧
  • 原文地址:https://www.cnblogs.com/yours1103/p/3366754.html
Copyright © 2011-2022 走看看