FOJ Problem 1016 无归之室
Accept: 926 Submit: 7502
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
金字塔中有一个房间名叫“无归之室”。房间地面完全由相同的矩形瓷砖覆盖。房间里布满无数的机关和陷阱,这正是其名字的由来。考古队花了几年时间研究对策,最后他们想出了一个方案。一台遥控的机器人将被送入房间,解除所有机关,然后返回。为了不触动机关,机器人必须走在瓷砖的中心区域上,绝对不能碰到瓷砖的边缘。如果走错一步,机器人会被落下的岩石砸成薄饼。
当考古队正准备行动的时候,他们发现了一件可怕的事情:他们没有考虑到机器人携带的工具箱。由于机器人必须将工具箱放在地面上才能开始解除机关,工具箱不可碰到瓷砖的边缘。现在他们急需你编程判断工具箱可否放下。
Input
Output
Sample Input
8 8 10 10
0 0 0 0
Sample Output
Box cannot be dropped.
审题:1、这一题要用实数,不能想当然直接用int
2、sqrt()括号里要求用浮点数 不能用整数
大矩形与小矩形存在三种情况
- 大矩形的长大于小矩形的长,宽大于小矩形的宽,这时肯定可以放得下去;
- 大矩形的对角线小于小矩形的对角线,那么也就没有地方容下小矩形了,这时判定否;//重点
- 当小矩形的长大于大矩形的长时,此时斜放也可能放进大矩形 //重点
# include<iostream>
# include<math.h>
using namespace std;
int QuickReject(double a,double b,double x,double y) //对全部矩形对进行初步筛选
{
if(x < a && y < b) //绝对满足要求的矩形
{
return ;
}
else if(x*x+y*y>a*a+b*b) //绝对不满足要求的矩形
{
return ;
}
else //可能满足要求也可能不满足的可疑矩形
{
return ;
}
}
int Reject(double a,double b,double x,double y) //对可疑矩形进行进一步筛选
{
double L1,L2;
L1=(a-sqrt((double)(x*x+y*y-b*b)))/;
L2=(b-sqrt((double)(x*x+y*y-a*a)))/;
if( L1*L1+L2*L2>y*y )
{
return ;
}
else
{
return ;
}
}
int main()
{
double A,B,X,Y;
while(true)
{
cin>>A>>B>>X>>Y;
if(A== && B== && X== && Y==)
{
break;
}
if(A < B)
{
double t;
t=A;A=B;B=t;
}
if(X < Y)
{
double t;
t=X;X=Y;Y=t;
}
int flag;
flag = QuickReject(A,B,X,Y);
if(flag == )
{
cout<<"Escape is possible."<<endl;
}
else if(flag == )
{
cout<<"Box cannot be dropped."<<endl;
}
else
{
flag = Reject(A,B,X,Y);
if(flag == )
{
cout<<"Escape is possible."<<endl;
}
else
{
cout<<"Box cannot be dropped."<<endl;
}
}
}
return ;
}
FOJ Problem 1016 无归之室的更多相关文章
- Problem 1016 咒文卷轴 优先队列+前缀和+rmq
题目链接: 题目 Problem 1016 咒文卷轴 Time Limit: 3000 mSec Memory Limit : 131072 KB 问题描述 小Y 是一个魔法师,有一天他获得了一卷神秘 ...
- FOJ ——Problem 1759 Super A^B mod C
Problem 1759 Super A^B mod C Accept: 1368 Submit: 4639Time Limit: 1000 mSec Memory Limit : 32 ...
- FOJ Problem 1015 土地划分
Problem 1015 土地划分 Accept: 823 Submit: 1956Time Limit: 1000 mSec Memory Limit : 32768 KB Probl ...
- foj Problem 2107 Hua Rong Dao
Problem 2107 Hua Rong Dao Accept: 503 Submit: 1054Time Limit: 1000 mSec Memory Limit : 32768 K ...
- foj Problem 2282 Wand
Problem 2282 Wand Accept: 432 Submit: 1537Time Limit: 1000 mSec Memory Limit : 262144 KB Prob ...
- FOJ Problem 2273 Triangles
Problem 2273 Triangles Accept: 201 Submit: 661Time Limit: 1000 mSec Memory Limit : 262144 KB P ...
- foj Problem 2275 Game
Problem D Game Accept: 145 Submit: 844Time Limit: 1000 mSec Memory Limit : 262144 KB Problem D ...
- foj Problem 2283 Tic-Tac-Toe
Prob ...
- FOJ Problem 2257 Saya的小熊饼干
...
随机推荐
- 5、SpringBoot+Mybatis整合------多对多
开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis/tree/3baea10a3a1104bda815c20695 ...
- 关于Java的反射机制,你需要理解这些..
转载请标明出处: http://blog.csdn.net/forezp/article/details/53730429 本文出自方志朋的博客 反射机制是在运行状态中,对于任意一个类,都能够知道这个 ...
- 牛客小白月赛2 D 虚虚实实 【欧拉图】【连通图】
链接:https://www.nowcoder.com/acm/contest/86/D来源:牛客网 题目描述 震为雷,临危不乱,亨通畅达:巽为风,柔顺伸展,厚载万物. 震卦:洊雷,震,君子以恐惧修省 ...
- Maven - 依赖范围<scope></scope>
6种:
- Java OOP——第五章 异常
1. 尝试通过if-else来解决异常问题: Eg: public class Test2 { public static void main(String[] args) { ...
- Ansible学习 Playbooks_1
Playbooks是Ansible中执行较复杂任务的一种的方式,Playbook由1个或多个play组成,语法格式是YAML,下面以一个简单的任务为例,开始我们的Playbook学习: 任务描述: 1 ...
- 平衡二叉查找树 AVL 的实现
不同结构的二叉查找树,查找效率有很大的不同(单支树结构的查找效率退化成了顺序查找).如何解决这个问题呢?关键在于如何最大限度的减小树的深度.正是基于这个想法,平衡二叉树出现了. 平衡二叉树的定义 (A ...
- Effective Approaches to Attention-based Neural Machine Translation(Global和Local attention)
这篇论文主要是提出了Global attention 和 Local attention 这个论文有一个译文,不过我没细看 Effective Approaches to Attention-base ...
- uniqueidentifier数据类型转换
cast(id as varchar(36))
- 归并排序算法Java实现
一. 算法描述 归并排序采用了分治策略(divide-and-conquer),就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解. 归并排序将待排序数组 ...