void-man

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

给出一个矩形箱子的长宽,然后再给出一个矩形的长宽,问你第二个是否能放到第一个里面,题目要求不能接触到box的trap

比较简单,但是很多细节需要注意,当然斜着放是最容易进去,然后设角度theta,取值在0-90之前,依次逼近看是否能存在

放进去的可能...

首先可以确定如果y>B的话,它就肯定放不进去

1 #include<iostream>
2 #include<algorithm>
3 #include<math.h>
4 #include<stdio.h>
5
6  using namespace std;
7
8 #define PI acos(-1.0)
9
10 int main()
11 {
12 int N,sign;
13 double A,B,X,Y,i,red;
14 scanf("%d",&N);
15 while(N--)
16 {
17 scanf("%lf%lf%lf%lf",&A,&B,&X,&Y);
18 if(A<B)swap(A,B);
19 if(X<Y)swap(X,Y);
20 sign=0;
21 if(A>X&&B>Y)
22 {
23 printf("Escape is possible.\n");
24 continue;
25 }
26 if(B<=Y)
27 {
28 printf("Box cannot be dropped.\n");
29 continue;
30 }
31 for(i=0;i<=90;i+=0.2){
32 red=PI*i/180;
33 if( ((Y*cos(red)+X*sin(red))<B )&& ((Y*sin(red)+X*cos(red))<A) )
34 {
35 printf("Escape is possible.\n");
36 sign=1;
37 break;
38 }
39 }
40 if(!sign)
41 printf("Box cannot be dropped.\n");
42 }
43 return 0;
44 }
posted on 2011-04-15 22:08  void-man  阅读(222)  评论(0)    收藏  举报