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(思维)