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 ...
随机推荐
- Django面试题(附带答案)
总结的一些Django中会问的问题,希望对你们有用. 1. Django的生命周期 当用户在浏览器输入url时,浏览器会生成请求头和请求体发送给服务端,url经过Django中的wsgi时请求对象创建 ...
- 【VS开发】Windows平台下Makefile学习笔记
作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开 ...
- 谷歌插件:右键搜使用指南.md
基本功能看插件,说几个自定义搜索的实现 自定义技巧:%s选择的文字或页面或链接,%g转换成GBK字符集,%t转换成BIG5字符集,%p剪贴板内容,%u当前页面域名. 注:这部分内容来自谷歌插件介绍.使 ...
- kotlin基本数据类型
通过idea创建kotlin项目: 创建kotlin文件 package com.czhappy.chapter01 var aBoolean:Boolean = true var anInt:Int ...
- 彻底理解js中this的指向,不必硬背(转)
转自: http://www.h5cn.com/js/jishu/2016/0226/18248.html 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定th ...
- nginx 四个主要组成部分
1.Nginx 二进制可执行文件 由各模块源码编译出的一个文件 2.Nginx.conf 配置文件 控制nginx如何运行 3.access.log 访问日志 记录http请求信息 4.error.l ...
- CentOS7.5下安装nginx --项目部署
1.安装ngnix一些依赖包 [root@VM_39_157_centos ~]# yum -y install gcc gcc-c++ openssl-devel pcre-devel httpd- ...
- 浅谈UML的概念和模型
讲了UML的基本的九种图:http://blog.csdn.net/jiuqiyuliang/article/details/8552956 来具体讲讲这九种视图: 1.用例图(use case di ...
- Spring框架ioc概括
什么是Spring且能做什么 Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的. Spring使用基本的JavaBean来完成以前只可能由EJB完成 ...
- 解决 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 以及MyBatis批量加载xml映射文件的方式
错误 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 的出现,意味着项目需要xml文件来 ...