【工具箱】解题报告
来源:互联网 发布:农村淘宝现状分析 编辑:程序博客网 时间:2024/06/06 04:24
工具箱
金字塔中有一个房间名叫“无归之室”。房间地面完全由相同的矩形瓷砖覆盖。房间里布满无数的机关和陷阱,这正是其名字的由来。考古队花了几年时间研究对策,最后他们想出了一个方案。一台遥控的机器人将被送入房间,解除所有机关,然后返回。为了不触动机关,机器人必须走在瓷砖的中心区域上,绝对不能碰到瓷砖的边缘。如果走错一步,机器人会被落下的岩石砸成薄饼。
当考古队正准备行动的时候,他们发现了一件可怕的事情:他们没有考虑到机器人携带的工具箱。由于机器人必须将工具箱放在地面上才能开始解除机关,工具箱不可碰到瓷砖的边缘。现在他们急需你编程判断工具箱可否放下。
输入格式
输入文件有多组数据组成。每组数据仅含一行四个正整数A,B,X,Y。A,B为瓷砖的长和宽,X,Y为工具箱底面的长和宽(工具箱为长方体)。最后一组数据A=B=X=Y=0,标志文件结束,不需要处理。
输出格式
若工具箱能以某种方式放在地上,则输出”Escapeis possible.”,否则输出”Boxcannot be dropped.”。
输入样例
1010 8 8
8 810 10
0 00 0
输出样例
Escapeis possible.
Boxcannot be dropped.
数据范围:
100%的数据满足1≤A,B,X,Y≤50000;
据说是一道解析几何。据说我们还没有学解析几何。。。
这道题要枚举角度theta,感觉有点奇葩呀,角度怎么枚举得完呢??不过这确实是标准解法。。
我没有做出来。贴标程。
#include <stdio.h>#include <math.h>double t=3.1415926535897932384626433832795/4;int main(){ FILE *fp,*fo; double a,b,c,d,k; double ar,l1,l2; fp=fopen("box.in","r"); fo=fopen("box.out","w"); fscanf(fp,"%lf %lf %lf %lf",&a,&b,&c,&d); while(a) {if (a<b) k=a,a=b,b=k; if (c<d) k=c,c=d,d=k; if (a*b<c*d || d>b) fprintf(fo,"Box cannot be dropped.\n"); else if (c<=a) fprintf(fo,"Escape is possible.\n"); else {for(ar=0.001;ar<=1;ar+=0.001) { l1=c*ar+sqrt(1-ar*ar)*d; l2=(c-d*sqrt(1-ar*ar)/ar)*sqrt(1-ar*ar)+d/ar; if (l1<=b && l2<=a) {fprintf(fo,"Escape is possible.\n"); break; } } if (l1>b || l2>a) fprintf(fo,"Box cannot be dropped.\n"); } fscanf(fp,"%lf %lf %lf %lf",&a,&b,&c,&d); } fclose(fp); fclose(fo); return(0);}
- 【工具箱】解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- ZJU 1115 解题报告
- ZJU1057解题报告
- JSP中的Simple自定义标签使用
- 电信、联通一句话回应发改委反垄断调查
- Ext.Net 1.x_Ext.Net.CompositeField 综合布局
- JAVA高级应用学习笔记----流
- u盘知识
- 【工具箱】解题报告
- POJ 2752 KMP算法中next数组的应用
- utc
- 链表
- 一段Parsec CSV文件的haskell代码
- JAVA中的堆和栈
- 简单标签
- 【并查集】疯狂的涂色
- C++的cout与cerr的区别