D. Vus the Cossack and Numbers

Posted msmw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了D. Vus the Cossack and Numbers相关的知识,希望对你有一定的参考价值。

  比较容易想到,对于每个a[i]下取整,然后再把它的小数不和取和,那么求和是正的就需要补正的,求和是负的就需要补充负的。这个题是要注意浮点数运算精度问题,用eps卡下一下精度,eps取1e-8就可以。还有下取整上取整函数取到的数还是浮点数。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int MAXN=1e5+5;
 4 const double eps=1e-8;
 5 double a[MAXN];
 6 int b[MAXN];
 7 int main()
 8 
 9     int n;cin>>n;double sum=0;
10     for(int i=1;i<=n;i++)
11     
12         scanf("%lf",&a[i]);
13         b[i]=floor(a[i]);
14         sum+=a[i]-b[i];
15     
16     for(int i=1;i<=n;i++)
17     
18         if(fabs(a[i]-b[i])<eps)
19             printf("%d\n",b[i]);
20         else if(fabs(sum-0)>eps)
21         
22             if(sum>0) 
23             
24                 sum--;
25                 printf("%d\n",b[i]+1);
26             
27             else
28             
29                 sum++;
30                 printf("%d\n",b[i]-1);
31             
32         
33         else printf("%d\n",b[i]);
34     
35     return 0;    
36   

 

以上是关于D. Vus the Cossack and Numbers的主要内容,如果未能解决你的问题,请参考以下文章

@codeforces - 1186E@ Vus the Cossack and a Field

Vus the Cossack and Numbers CF-1186D(思维)

Codeforces 1186F - Vus the Cossack and a Graph 模拟乱搞/欧拉回路

D. Vasya And The Matrix

D. The Child and Zoo

D. The Fair Nut and the Best Path