POJ 1380 Equipment Box(判断一个长方形能不能包含另一个长方形)

2015-01-27 10:08:41 · 作者: · 浏览: 10

?9

?

题目大意:

给你两个矩形的长和宽,问第一个长方形能不能包含第二个长方形。

?

解题思路:

这道题乍看上去好想很简单,但其实细看的话,会有一种特殊情况很容易被忽略,如图:

width=400

这种情况很容易被忽略,对于这种情况,需要解一下图中的红色或黄色三角形,判断起来不是很麻烦,具体的看一下代码就可以了,很好理解。

?

代码:

?

#include 
  
   
#include 
   
     int main() { double a, b, x, y, L1, L2; int T; scanf(%d, &T); while (T--) { scanf(%lf%lf%lf%lf, &a, &b, &x, &y); if(a < b) { double temp=a; a=b; b=temp; } if(x < y) { double temp=x; x=y; y=temp; } if(a > x && b > y){ printf(Escape is possible. ); continue; } else if( x*x+y*y > a*a+b*b){ printf(Box cannot be dropped. ); continue; } else{///斜着放入的情况 L1 = (a - sqrt((double)(x*x+y*y-b*b)))/2; L2 = (b - sqrt((double)(x*x+y*y-a*a)))/2; if (L1*L1+L2*L2>y*y) printf(Escape is possible. ); else printf(Box cannot be dropped. ); } } return 0; }
   
  


?