POJ 1380 Equipment Box(大矩形包含小矩形判定)
POJ 1380 Equipment Box(大矩形包含小矩形判定)
http://poj.org/problem?id=1380
题意:
给你两个矩形的长和宽,问你后一个矩形能否放在前一个矩形中?(小矩形的顶点不能在大矩形的边上)
分析:
首先我们假设大矩形长宽为A和B(A>B),小矩形长宽为X和Y(X>Y).那么有下面4种情况:
A>X 且 B > Y : 能(直接放)
A>X 且 B<=Y : 不能(自己画个图)
A<=X 且 B>Y : 待定(可以用过旋转小矩形,使得它放在大矩形中)
A<=X 且 B<=Y : 不能(显然)
下面我们只要考虑第3种情况即可. 如果我们让小矩形在大矩形里面斜着放,且假设小矩形的长边与大矩形的水平边成K度(0<=K<=90)的夹角.那么一定是下面这个图:
由上图的分析可知:
小矩形能放下的充要条件是:A>X*COSK+Y*SINK且B>X*SINK+Y*COSK.其中K属于[0,90]度范围.
(其实就算小矩形是平放在大矩形内的,也是满足上面的不等式的.只不过这时K=0或90度而已. 所以程序实现中我们甚至可以把所有情况都用上面两个不等式来判断,只要符合不等式的肯定能放下,不符合的肯定放不下. 根本不用判断A与X ,B与Y之间的关系)
由于K属于[0,90],那么我们让K从0开始以0.2的增幅增加,然后判断对于某个K是否满足上面两个不等式. 只要存在任何一个K满足上面不等式,那么小矩形必然能放在大矩形内.
AC代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const double PI=3.1415926;bool can(double A,double B,double X,double Y)
{for(double K=0;K<=90;K+=0.2){double rad=PI*K/180.0;if( A>(X*cos(rad)+Y*sin(rad)) && B>(X*sin(rad)+Y*cos(rad)) ) return true;}return false;
}int main()
{int T; scanf("%d",&T);while(T--){double A,B,X,Y;scanf("%lf%lf%lf%lf",&A,&B,&X,&Y);if(A<B) swap(A,B);if(X<Y) swap(X,Y);printf("%s\n",can(A,B,X,Y)?"Escape is possible.":"Box cannot be dropped.");}return 0;
}
POJ 1380 Equipment Box(大矩形包含小矩形判定)相关推荐
- 小矩形覆盖大矩形问题
小矩形覆盖大矩形问题 问题 一.解析问题 二.代码解析 1.新建.cpp文件 示例: 问题 我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形.请问用8个2×1的小矩形无重叠地覆盖一个2×8的大矩形 ...
- 76 - 小矩形覆盖大矩形
1. 可以用2×1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种覆盖方法?请用递归的方式实现 斐波那契数列的应用 def rectCover ...
- NLP与ChatGPT的碰撞:大模型和小模型联合发力
ChatGPT真的太火了!作为NLP的终结者,ChatGPT又会与NLP发生怎么样的碰撞?大模型可以替代小模型吗?NLP又将何去何从?今天给大家推荐一本好书:<基于NLP的内容理解>! 文 ...
- 大数据系统包含哪些组件?需要过等保吗?
最近看到很多过等保小伙伴再问,大数据系统包含哪些组件?需要过等保吗?组件可以单独过等保吗?这里我们小编就给你简单回答一下吧! 大数据系统包含哪些组件? [回答]:大数据系统主要包含四大组件,具体组件名 ...
- 今日头条适配方案_ 今日头条大改版,小程序强势登场
今日头条大改版,此次改版最新奇的就是在首页底部的中心位置增加了"常用"功能,点击进入后会出现小程序和一些常用功能,页面上拉则会形成全屏页面,此外"常用"功能界面 ...
- 代达罗斯之殇-大数据领域小文件问题解决攻略
: 点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据 ...
- [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密
string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...
- 基于QGraphicsView、QGraphicsScene、自定义QGraphicsItem的小demo(正矩形、旋转矩形及圆形)
网上有很多关于这三个的资料,这方面的功能不做过多的描述,仅仅将在做小Demo过程中遇到的问题做下记录,下面是Demo的界面图: Demo的初衷是不想每次使用QGraphicsView和QGraphic ...
- 雷声大,雨点小——《多任务下的数据结构与算法》初印象
本文由恋花蝶最初发表于:http://blog.csdn.net/lanphaday和http://lanphaday.bokee.com,转贴请保留这一声明,谢谢. 雷声大,雨点小 <多任务下 ...
- 大Op和小op的含义及理解
大Op和小op的含义及理解 Stochastic order notation(随机有序符号) 6.1.1 O p O_p Op和 o p o_p op之间的关系 6.2 符号速记及其算数性质 6 ...
最新文章
- 【网络安全】令人闻风丧胆的“木马”是个啥来头?
- ANSI, UNICODE与UTF8相互转换模板类
- mysql grep 提取错误日志_详解grep获取MySQL错误日志信息的方法
- 5404. 用栈操作构建数组
- 数据结构6——回文树
- 放心了!邮政、顺丰和京东基本全部复工
- 1081. Rational Sum (20)-PAT甲级真题
- 官方文档——一篇文章弄懂Flutter中的布局
- r语言plotmds_多元统计分析R语言建模| 11 多维标度法MDS
- IDL size函数
- 单片机之步进电机速度控制篇(三)
- 毕业设计-分布式爬虫系统(干货)
- 【NOI2015】小园丁与老司机
- ADS3 Inverted File Index
- 哥们别逗 了,写个脚本那真不叫运维自动化!
- 计算机管理无法打开权限不足,win10 打不开软件管理员权限不够
- mysql的week函数与JAVA计算周的差别问题
- manjaro pacman glibc 2.33 not fount
- 关于localhost访问特别快而nginx配置代理后转发特别慢的解决
- 字符编码:计算机的巴别塔
热门文章
- 大数据笔记--Hadoop(第五篇)
- 优秀程序员必备的23条好习惯
- 如何用python爬取抖音视频列表
- U-Net在2022年相关研究的论文推荐
- mysql got signal 11_轻松解决MYSQL错误mysqld got signal 11 ;
- Win7缺失dll文件如何修复?Win7计算机丢失dll文件怎么办
- PTA---约分最简分式 (10 分)
- 修改mac地址导致计算机无法上网,如何解决Win7计算机上无法修改MAC地址的问题...
- linux wine乱码,解决wine中文乱码的问题
- 需求分析——功能需求和非功能需求