CodeForces 351A Jeff and Rounding
生活随笔
收集整理的這篇文章主要介紹了
CodeForces 351A Jeff and Rounding
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:給你一個2×n長的序列,進行n次操作,每次操作是選取兩個從未選過的數,一個取上整,一個取下整,問你最后能得到最接近原來和的序列是多少。
解題思路:先將所有小數和統計出來,然后再枚舉向下取整的個數即可 ,利用的原則是 ?x + (1-x) = 1;?
解題代碼:
1 // File Name: 351a.cpg 2 // Author: darkdream 3 // Created Time: 2015年03月08日 星期日 12時21分23秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #include<set> 9 #include<deque> 10 #include<stack> 11 #include<bitset> 12 #include<algorithm> 13 #include<functional> 14 #include<numeric> 15 #include<utility> 16 #include<sstream> 17 #include<iostream> 18 #include<iomanip> 19 #include<cstdio> 20 #include<cmath> 21 #include<cstdlib> 22 #include<cstring> 23 #include<ctime> 24 #define LL long long 25 26 using namespace std; 27 int a[5000]; 28 const double eps = 1e-8; 29 int main(){ 30 int n ; 31 scanf("%d",&n); 32 double sum = 0 ; 33 int n0 = 0 ; 34 for(int i = 1;i <= 2*n;i ++) 35 { 36 double tmp; 37 scanf("%lf",&tmp); 38 int x = (tmp*1000+eps); 39 a[i] = x % 1000; 40 if(a[i] == 0 ) 41 n0 ++ ; 42 sum += a[i]*1.0/1000; 43 } 44 double ans = 1e9 ; 45 // if(n == 32) 46 //printf("%f %d %d\n",ans,min(2*n-n0,n),n0); 47 for(int i = max(0,n-n0);i <= min(2*n-n0,n) ;i ++) 48 ans = min(ans,fabs(sum-i)); 49 printf("%.3f\n",ans); 50 return 0; 51 } View Code?
轉載于:https://www.cnblogs.com/zyue/p/4322306.html
總結
以上是生活随笔為你收集整理的CodeForces 351A Jeff and Rounding的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: doc文件如何转换成docx文件
- 下一篇: 腾达 N317 无线路由器网速控制设置方