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 ...
随机推荐
- 论文笔记: LSTD A Low-Shot Transfer Detector for Object Detection
背景知识: Zeroshot Learning,零次学习. 模型 对于 训练集 中 没有出现过 的 类别,能自动创造出相应的映射: X→Y. Low/Few-shot Learning.One-sho ...
- Redis set集合的使用
集合中的元素个数最多为2的32次方-1个,集合中的元素师没有顺序的. Redis集合的操作命令和对应的api如下: smembers [set]JedisAPI:public Set<Strin ...
- error PRJ0003 : 生成“rc.exe”时出错
完美解决 visual studio 2008运行时 error PRJ0003 : 生成“rc.exe”时出错 步骤如下 : 1.运行vs2008安装程序,点击安装或删除程序.在“选择要安装的功能” ...
- C#中输入法全角转换半角
一般情况下,我们都是使用英文半角的来进行编程,包括输入框和密码框的设定一般也是英文半角,但往往有些人使用全角输入,登陆不进去还以为你系统错误,现整理了几种全角切换半角和设定输入法的几种方法. 方法一: ...
- [DEBUG] ubuntu pip安装成功却无法import
我的pip经常出问题,我也不知道为啥..今天搞啥啥坏=.= 问题: pip自动安装显示成功,在交互环境下却无法import ==========================踩坑========== ...
- PAT甲级 字符串处理题_C++题解
字符串处理题 目录 <算法笔记> 重点摘要 1001 A+B Format (20) 1005 Spell It Right (20) 1108 Finding Average (20) ...
- QT聊天室--重大bug
发送qqqqqqqqqqqqqqqqqqqqqqq: 发送test
- 浅析ARM协处理器CP15寄存器有关指令:MCR\MRC
ref:http://blog.csdn.net/gameit/article/details/13169405 背景: 在uboot中,start.s中涉及到了 CP15 的有关操作.查阅有关资料, ...
- uboot 代码执行顺序
ref:http://blog.chinaunix.net/uid-30352139-id-5128405.html uboot: 2014.07 1.1 U-boot相关文件 boards.c ...
- (二)Struts.xml文件详解
一.Struts.xml文件 Struts.xml文件构成 如图,<Struts>标签内共有5个子标签. 1.1 struts-default.xml 查看Struts的内容可知,Stru ...