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 ...
随机推荐
- 【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant
wpa_supplicant是一个跨平台的无线安全管理软件,这里需要用它来对无线网络进行配置,wpa_supplicant相关工具已经移植好,包含在我们提供的文件系统中. 配置无线网络 wpa_sup ...
- redis key 空闲(一)
语法: redis 127.0.0.1:6379> COMMAND KEY_NAME 实例: redis 127.0.0.1:6379[1]> select 2 OK redis 127. ...
- QT信号槽连接
一:信号槽是什么? Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就 ...
- SourceTree使用图解
看完这篇文档你能做到的是: 1.简单的用Git管理项目. 2.怎样既要开发又要处理发布出去的版本bug情况. SourceTree是一个免费的Git图形化管理工具,mac下也可以安装. 下载地址:ht ...
- 乐字节Java反射之一:反射概念与获取反射源头class
一.Java反射机制概念 “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”,如Python, Ruby是动态语言:显然C++,Java,C#不是动态语言,但是JAVA有着一个非常突出 ...
- 《Mysql 事务 - 隔离》
一:事务概念 - ACID(Atomicity.Consistency.Isolation.Durability,即原子性.一致性.隔离性.持久性) 二:事务产生的问题 - 多个事务同时执行的时候 ...
- windows安装memcache并为php添加memcache扩展
第一步:安装包下载 1.4.5 版本之前用作为一个服务安装,1.4.5 版本之后用任务计划中启用一个普通进程来使用 具体内容如以下链接:http://www.runoob.com/memcached/ ...
- 前端通过js获取手机型号
###前段通过js获取手机型号 需求: 用户登录后记录当前的手机型号并记录 插件: mobile-detect.js插件地址 mobile-device-js插件地址 使用步骤: 获取UA信息-> ...
- Oracle数据库——查询所有用户
查询数据库所有用户(ALL_USERS)的用户名,用户编号,创建日期 默认应该有36个用户 SELECT * FROM ALL_USERS; 查看ALL_USERS的结构 DESC ALL_USERS ...
- TiDB部分
TiDB部分 https://blog.csdn.net/D_Guco/article/details/80641236 https://www.v2ex.com/t/508094 https://u ...