ZZNUOJ-2157: 水滴来袭-【干扰阅读-卡模糊精度1e-8的问题】
ZZNUOJ-2157: 水滴来袭
那是一个冷雨霏霏的秋天的下午,当罗辑拿着枪威胁三体文明的时候,如果过了三十秒三体人还没有同他展开谈判,罗辑就会扣动扳机即刻结束自己的生命,随后他身上的核弹控制器就会检测不到他的生命体征进而按照设定引爆数千万枚核弹,
这些排列有序的核弹会以某种原理(具体见原著)向银河系范围公布三体世界的坐标,来自黑暗森林法则的力量就会摧毁掉整个三体星系和太阳系(在太阳系的三体舰队也无法存活)。
在通过量子通讯实时得到了这则消息后,作为三体第一舰队的指挥官慌得一批,精通逻辑分析能力的Ta在脑海里迅速展开了一次博弈推理:
、三体世界必须保证无恙,不能冒任何风险。
、三体舰队的水滴此刻距离罗辑Xkm处,光的传播速度为公认值为c=299792458米/秒,水滴可以达到光速的99.%,可以通过量子通讯技术即刻控制水滴,让水滴“start”(忽略加速时间),前往摧毁罗辑的核弹控制器——罗辑“dying”,
三体世界得以“survive”,三体第一舰队得以抵达地球,获得充分补给和能源“survive”,但地球状况却是“dying”。
、如果水滴在三十秒以后无法及时阻止,那么让水滴保持“static”,三体第一舰队即刻同罗辑谈判,地球和三体世界都得以“survive”;三体第一舰队必然撤退,但注定因为燃料不足,全体舰队成员全部在返航途中“dying”,
地球状况可视为“survive”。
指挥官的量子大脑推理的时间忽略不计,即刻迅速行动。
输入 每组样例输入包含两个整数:X和Y。
三体舰队的水滴此刻距离地球上罗辑的位置Xkm处,X为整数,<= X <=^.
事实上,罗辑其实也慌得一批,自己手里就紧紧握着两个星系的命运;因为他没带手表,所以只好自己在心里默默数数,将数完30个数来作为30秒钟来计算,设他数完30个数的时间为Y秒,Y为整数,<=Y<=。
三体第一舰队的指挥官在推理计算时,不知道这个Y值的存在,只按他说的三十秒来计算。 多实例,不超过10000组数据,处理到EOF结束。 输出
作为三体的一名地球智子观察员,你需要在30秒后向三体总部汇报监测结果,(针对每个样例)简化一下报告内容分别输出五行即可:
第一行输出三体第一舰队的状况,格式: "First Fleet : dying/survive"
第二行输出罗辑的状况,格式:"LuoJi : dying/survive"
第三行输出三体世界的状况,格式:"Home : dying/survive"
第四行输出地球的状况,格式: "Earth : dying/survive"
第五行输出水滴的状况,格式:"Drop : start/static"
第六行输出一个空行,表示分隔行。 样例输入 样例输出 First Fleet : survive
LuoJi : dying
Home : survive
Earth : dying
Drop : start First Fleet : dying
LuoJi : dying
Home : dying
Earth : dying
Drop : start 提示 如果罗辑开枪的同时水滴摧毁核弹控制器,则视为水滴成功阻止。
浮点数之间误差小于等于1e-,即可认为相等。
本题无其他除题意外的特殊情况,本故事剧情纯属虚构。
大致思路:
直接列出真值表:
|
|
30秒水滴飞不到,直接谈判 |
30秒可以飞到,但罗辑提前开枪了 |
30秒可以飞到并赶在他开枪之前 |
|
|
dying:(0)/Survive:(1) |
dying:(0)/Survive:(1) |
dying:(0)/Survive:(1) |
|
First Fleet |
0 |
0 |
1 |
|
LuoJi |
1 |
0 |
0 |
|
home |
1 |
0 |
1 |
|
earth |
1 |
0 |
0 |
|
|
Start:(0)/static(1) |
Start:(0)/static(1) |
Start:(0)/static(1) |
|
Drop |
1 |
0 |
0 |
接下来就是模糊精度处理的问题:
1、如果水滴在30s+1e-9s 的时间赶来,算谁赢?水滴会出动吗?
浮点数之间误差小于等于1e-,即可认为相等。
如果罗辑开枪的同时水滴摧毁核弹控制器,则视为水滴成功阻止。
根据提示里的内容,可以想到30+1e-9确实大于30s但是根据题意是相等的,并且可以在“30秒”的时候成功阻止!
2、如果水滴在30s+1e-8s 的时间赶来,算谁赢?水滴会出动吗?
浮点数之间误差小于等于1e-,即可认为相等。
如果罗辑开枪的同时水滴摧毁核弹控制器,则视为水滴成功阻止。
根据提示里的内容,可以想到30+1e-9确实大于30s但是根据题意是相等的,并且可以在“30秒”的时候成功阻止!
3、如果水滴在30s+1e-7s 的时间赶来,算谁赢?水滴会出动吗?
浮点数之间误差小于等于1e-,即可认为相等。
如果罗辑开枪的同时水滴摧毁核弹控制器,则视为水滴成功阻止。
根据提示里的内容,可以想到30+1e-7确实大于30s但是根据题意是不相等的,并且可以在“30秒”的时候是不能成功阻止的!所以只好进行谈判!
4、如果罗辑在Y秒开枪,水滴可以出动,水滴在Y+1e^-9 的时间赶来,算谁赢?
同理
5、如果罗辑在Y秒开枪,水滴可以出动,水滴在Y+1e^-8 的时间赶来,算谁赢?
同理
6、如果罗辑在Y秒开枪,水滴可以出动,水滴在Y+1e^-7 的时间赶来,算谁赢?
同理
签到题,卡精度,经过不断尝试更改数据范围,发现了一个卡精度卡到 1e^-7 的数据!所以,这个小小的精度WA了所有的人!
double(A) > double(B)的意思是绝对大于的意思,会忽略精度的近似相等的处理要求的!
一旦题目要求精度了,就注意好精度问题,千万不可忽略!建议可以画一个一维的坐标轴范围出来,可以看的更清楚!
题解:
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
const double eps=1e-;
#define PI acos(-1.0)
int main(){
// freopen("input.in","r",stdin);
// freopen("output.out","w",stdout); double X,Y;
double vd=299792.458*0.9998; //水滴速度 while(scanf("%lf%lf",&X,&Y)!=EOF){ double t1=X/vd;//水滴飞行时间
bool ff,fl,fh,fe,fd; if(t1>30.0&&(fabs(t1-30.0)>1e-)){ //水滴30s飞不到,立即谈判
ff=;
fl=;
fh=;
fe=;
fd=;
}
else if((t1<30.0||fabs(t1-30.0)<=1e- )&&(t1>Y&&fabs(t1-Y)>1e-)) //水滴起飞,罗辑提前开枪了
{
ff=;
fl=;
fh=;
fe=;
fd=;
}
else{
ff=;
fl=;
fh=;
fe=;
fd=;
}
// printf("**Tdrop = %.9lf , Y=%.9lf\n",t1,Y); if(ff==)printf("First Fleet : dying\n");
else printf("First Fleet : survive\n"); if(fl==)printf("LuoJi : dying\n");
else printf("LuoJi : survive\n"); if(fh==)printf("Home : dying\n");
else printf("Home : survive\n"); if(fe==)printf("Earth : dying\n");
else printf("Earth : survive\n"); if(fd==)printf("Drop : start\n");
else printf("Drop : static\n");
cout<<endl;
} return ;
}
ZZNUOJ-2157: 水滴来袭-【干扰阅读-卡模糊精度1e-8的问题】的更多相关文章
- 模糊测试(Fuzz testing)
模糊测试(fuzz testing)是一种安全测试方法,他介于完全的手工测试和完全的自动化测试之间.为什么是介于那两者之间?首先完全的手工测试即是渗透测试,测试人员可以模拟黑客恶意进入系统.查找漏洞, ...
- OpenCV3入门(十三)图像运动模糊
1.原理 运动模糊产生: 由于相机传感器或物体相对运动, 按快门瞬间造成图像产生运动模糊. 在用摄像机获取景物图像时,如果在相机曝光期间景物和摄像机之间存在相对运动,例如用照相机拍摄快速运动的物体,或 ...
- 手机三种SIM卡 你所不知道的剪卡“秘密”
SIM卡物理尺寸的发展是逐渐轻薄化,尺寸逐渐缩小的一个过程,最早手机中的卡都是2FF,2003年国际标准提出3FF,当前很多终端都使用这种形态的卡,4FF在2011年的国际标准会议中提出,2012年纳 ...
- Security+学习笔记
第二章 风险分析 风险管理 评估:确定并评估系统中存在的风险 分析:分析风险对系统产生的潜在影响 响应:规划如何响应风险的策略 缓解: 缓解风险对未来安全造成的不良影响 风险分析流程 资产确定 漏洞确 ...
- We're Hiring A Software Tester
测试人员的基本修养: 代码编写,不可或缺 乔布斯说:Design is not just what it looks like and feel like,design is how it works ...
- 软件调研——GoodNotes 5与Notability
项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 作业要求 我在这个课程的目标是 积累软件开发经验,提高工程能力 这个作业在哪个具体方面帮助我实现目标 深入调 ...
- php实现验证码
验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码.好吧,其实是没有事情干,但是又不想浪费时间,所以学习了下php实现验证码.正所谓,技多不压身.而且 ...
- 激光三角法点云重建分享——halcon 方法
如今视觉应用方面单纯依靠2D图像解决问题存在很多问题.稳定性差.定位不准确.还有配合机器人抓取方面只能抓高度一致的物品.其实在Halcon算法库有非常强大的三维算法.包括点云重建.激光三角法(2D相机 ...
- SSM框架简介及整合教程
1.Spring Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (控制反转) 和 A面向切面编程).Spring框架是个轻量级的Java E ...
随机推荐
- tab页签
<div class="fl" id="newsBox"> <div class="tab1 grayBar"> & ...
- 第一章:mysql的介绍与安装
什么是数据库管理系统 1)管理数据(增删改查) 2)存储数据 数据库管理系统的分类 1)关系型数据库(rdbms) 典型产品:mysql,oracle,mariadb,mssql(sqlserver) ...
- Java的设计模式(3)--工厂模式
工厂模式是定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到子类. 工厂模式涉及四种角色: 抽象产品(Product):抽象类或者接口,负责定义具体产品必须实现的方法 ...
- 关于 磁盘 I/O 的工作机制那些事
总有一些你我看不见的东西,存在与你我周围 <深入分析 javaW 技术内幕> 读书感悟 作者 :淮左白衣 写于2018年4月11日19:35:06 写在前面的话 字节与字符的转换桥梁 用户 ...
- Word 查找替换高级玩法系列之 -- 将换行符替换成回车符
我们从网上Copy过来的很多Word文档,里面使用的都是换行符,也就是我们常说的软回车,它显示为一个向下的箭头.这些符号不仅碍眼,而且会影响我们后期的排版,尤其是对段落的排版,因为Word里面的段落只 ...
- Centos6.5镜像下载
CentOS6.5系统安装 1.首先打开网易开源镜像站: http://mirrors.163.com/ 当然,大家也可以使用阿里开源镜像站:http://mirrors.aliyun.com/ 2. ...
- 希尔排序——C语言
希尔排序 希尔排序是插入排序的一种,又称“缩小增量排序”,希尔排序是直接插入排序算法的一种更高效的改进版本,关于插入排序可以看下这篇随笔:插入排序——C语言 (图片来源:https://www.cnb ...
- Mariadb/Mysql 主从复制(1)
一.原理 mysql的主从数据同步是一个异步复制过程,需要master开启bin-log日志功能,bin-log记录了master库中的增.删.修改.更新操作的sql语句,整个过程需要开启3个线程,分 ...
- (二)Redis之Jedis概念和HelloWorld实现以及JedisPool的使用
一.Jedis概念 实际开发中,我们需要用Redis的连接工具连接Redis然后操作Redis, 对于主流语言,Redis都提供了对应的客户端: 官网:https://redis.io/clients ...
- webAPI中“System.Web.Http.HttpConfiguration”不包含“EnableSystemDiagnosticsTracing”的定义解决办法
webAPI中“System.Web.Http.HttpConfiguration”不包含“EnableSystemDiagnosticsTracing”的定义 今天从 运行 WebAPI 工程的代码 ...