题目速递:http://codeforces.com/gym/102500/problem/E

题解:注意一下精度

原本想着,输入数字都带两位小数,然后来加加减减,应该不会出现精度错误,结果是我本来就想错了。
计算机是用二进制来存的数据,因而浮点数都难免带有误差,比如0.9虽然只有一位小数,但转成2进制是无限循环小数0.1110011001100110011…。
故而原来想法仍停留在十进制,过于想当然。本身存在计算机内的带有误差的浮点数通过加加减减得出来的ans_1,肯定和本应有的答案值ans(用十进制运算后的结果化成二进制)之间不等。

解法1:【此题esp小于等于1e-2即可】

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string.h>
#include <cmath>
#define N 100005
#define ll long long
using namespace std;
#define esp 1e-2
double a[6];
int cmp(double k){if(k>esp)return 1;else if(k<-esp)return -1;return 0;
}
int main()
{for(int i=0;i<5;i++)cin>>a[i];sort(a,a+4);double sum; sum=a[0]+a[1]+a[2];if(cmp(3*a[4]-sum)==-1){printf("impossible");return 0;}sum = a[1]+a[2]+a[3];if(cmp(3*a[4]-sum)>=0){printf("infinite");return 0;}double temp = a[4]*3-a[1]-a[2];printf("%.2lf\n",temp);
}

解法2

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string.h>
#include <cmath>
#define N 100005
#define ll long long
using namespace std;
#define esp 1e-2
double a[6];
int main()
{int u,v;for(int i=0;i<=4;i++){scanf("%d.%d",&u,&v);a[i]=u*100+v;}sort(a,a+4);int sum=0;sum=a[0]+a[1]+a[2];if(sum>a[4]*3){printf("impossible\n");return 0;}sum=a[1]+a[2]+a[3];if(sum<=a[4]*3){printf("infinite\n");return 0;}double ans=(a[4]*3-a[1]-a[2])*1.0/100;printf("%.2f\n",ans);
}

Gym:102500E:Expeditious Cubing【精度精度】相关推荐

  1. [NWERC 2019] E. Expeditious Cubing 浮点数精度判断

    题目链接:E. Expeditious Cubing 题意 一个人有五个成绩,计算最终成绩时需要去掉最大和最小值.现在已知四个成绩和目的成绩,问第五个最大是多少情况下满足小于等于目的成绩, 题解 本题 ...

  2. 【2019 NWERC - E】Expeditious Cubing 【★】

    Problem[★] 最终成绩为五个成绩去掉最好和最差两个成绩剩下三个成绩的平均数,现在Claire已经有了四个成绩,给定他听得比赛所需的最小最终成绩,求他第五次成绩最差是多少时能赢得比赛,或者无论如 ...

  3. 计算机 精度,精度计算器

    精度计算器(ACCU)的数据转换器的应用电路的设计和分析.它计算的数据转换器的理想的直流精度.该方案是使用一台HP ® 50G的计算器或免费PC模拟器. 精度计算器 精度计算器(ACCU)的数据转换器 ...

  4. Expeditious Cubing(浮点数处理)

    传送门 本题主要考察浮点数处理 因为输入都有且仅有两位小数,那么我们将输入均扩大100倍,这样就完全消除了浮点误差.输出时一种方法是将得到的整数答案强转为浮点数除以100:另外一种是先将答案对100取 ...

  5. ICPC North Western European Regional Contest 2019 E. Expeditious Cubing(浮点数处理)

    题目链接 思路:先将前四次时间按照升序排序. 后三次时间的和如果小于给出的标准3,那么就inf,如果前三次的和大于标准时间 3那么就impossible,第三种情况就是,用标准时间 * 3 - 第二长 ...

  6. CUDA 8的混合精度编程

    CUDA 8的混合精度编程 Volta和Turing GPU包含 Tensor Cores,可加速某些类型的FP16矩阵数学运算.这样可以在流行的AI框架内更快,更轻松地进行混合精度计算.要使用Ten ...

  7. double取值范围 java_Java中float/double取值范围与精度

    Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...

  8. BigDecimal 小数 浮点数 精度 财务计算

    简介 float和double类型的使用局限: 单精度浮点型变量float可以处理6~7位有效数,双精度浮点型变量double可以处理15~16位有效数,在实际应用中,如果需要对更大或者更小的数进行运 ...

  9. float 范围 java_Java中float/double取值范围与精度

    Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...

最新文章

  1. 【Math】P=NP问题
  2. micropython中文社区 socket通讯_python网络编程学习笔记(3):socket网络服务器
  3. nfs服务端服务停掉,导致的客户端访问挂载目录卡死的情况
  4. 使用Adsutil.vbs来获取IIS用户的密码
  5. mysql插入数据与删除重复记录的几个例子(收藏)
  6. 【转】基于jquery,bootstrap数据验证插件bootstrapValidator 教程
  7. 双击打开Inventor文件
  8. oracle中prad函数_等保测评2.0:Oracle身份鉴别
  9. 基于sympy的python实现三层BP神经网络算法
  10. 【BZOJ4407】于神之怒加强版
  11. hibernate中get方法和load方法的根本区别
  12. 在DataTable中进行数据查询 (转)
  13. Graduation Speech 毕业典礼致辞__转载
  14. Windows 10的成功能让苹果学到点什么?
  15. A New Start
  16. RedHat 安装 CentOS yum
  17. 不惑网络人细数应用交付发展史(二)- 一枝独大
  18. arcgis的numpy模块_01. Numpy模块
  19. java指标计算_java – 使用JMH计算指标
  20. dnastar拼接反向互补序列_DNAstar 教程

热门文章

  1. WinForm使用CefSharp,嵌入浏览器
  2. pthread_cond_broadcast pthread_cond_signal
  3. 私货——OIer 必备网站集
  4. 一万八的M1 iPad Pro ,怎么就成了“期货”
  5. valid ready协议学习
  6. IDEA 运行时出现 too long 异常
  7. Qemu Fuzzer学习
  8. 【JS】js中的和符号,或符号
  9. html隐藏汉堡按钮,12种汉堡包图标按钮变形动画特效
  10. Tracup|项目经理必备的极客式项目管理工具