HDOJ/HDU 2438 计算几何+三分
来源:互联网 发布:剑雨江湖法器晋级数据 编辑:程序博客网 时间:2024/05/16 03:51
Turn the corner
Time Limit:1000MS Memory Limit:32768K
Total Submit:16 Accepted:9
Description
Mr. West bought a new car! So he is travelling around the city.
One day he comes to a vertical corner. The street he is currently in has a width x, the street he wants to turn to has a width y. The car has a length l and a width d.
Can Mr. West go across the corner?
Input
Every line has four real numbers, x, y, l and w.
Proceed to the end of file.
Output
If he can go across the corner, print "yes". Print "no" otherwise.
Sample Input
10 6 13.5 410 6 14.5 4
Sample Output
yesno
Hint
hdoj2438
有链接提示的题目请先去链接处提交程序,AC后提交到SDUTOJ中,以便查询存档。
Source
2008 Asia Harbin Regional Contest Online
最近一直在修炼三分技术。
顿然发现,所有三分似乎都与计算几何有关。。。好神奇的说。。。。
扯远了。。回到这个题目。
这个题目,我的写法和后来看到的标准写法不一样。
标准写法是去计算那个sita,而我的是。
我三分的是那个车与直角围城的三角心的一个底边长度
通过计算内拐点,到那条直线的最短距离来判断到底是不是输出yes或者no
详细见代码:
#include<stdio.h>#include<stdlib.h>#include<math.h>#define eps 1e-8struct point{double x;double y;};double w1,w2,l,d;double cross(point p1,point p2,point p0){return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}double cal(double x){point t1,t2,p0;double s,y,h;y=sqrt(l*l-x*x);t1.x=w1-x,t1.y=-w2;t2.x=w1,t2.y=-(w2-y);p0.x=0,p0.y=0;s=fabs(cross(t1,t2,p0));h=s/l;return h;}void solve(){int i;double left,right,mid1,mid2,h1,h2;left=0,right=l;for(i=0;i<=100;i++){mid1=(left*2+right)/3;mid2=(left+right*2)/3;h1=cal(mid1);h2=cal(mid2);if(h1>h2){left=mid1;}else{right=mid2;}}double H=cal(left);if(H-d>0)printf("yes\n");elseprintf("no\n");}int main(){while(scanf("%lf%lf%lf%lf",&w1,&w2,&l,&d)!=EOF){if(d>=w1||d>=w2){printf("no\n");continue;}solve();}return 0;}
- HDOJ/HDU 2438 计算几何+三分
- hdu-2438 计算几何+三分
- hdu 4454 #计算几何 三分
- HDU 4454 计算几何 (三分)
- hdoj 2438 Turn the corner (三分搜索+计算几何)
- HDU 2438 Turn the corner (计算几何 + 三分)
- hdu 2438 计算几何 三分 Turn the corner
- HDU 2438 Turn the corner 计算几何+三分
- hdu4454 计算几何 三分
- HDU 4454 Stealing a Cake (计算几何+三分)
- HDU 4766 Network(计算几何 二分+三分)
- hdu 5027 Help!(计算几何 三分求极值)
- HDU 3756 Dome of Circus(计算几何 + 三分)
- hdu 4454 三分+几何
- SOJ 4042 计算几何+三分
- ZOJ 3203 计算几何+三分
- HD 2438 Turn the corner (三分&&计算几何&&经典问题)
- HDU 2438 Turn the corner(三分查找, 几何求解)
- 如何在Ubuntu上添加桌面图标?
- Oracle中把一个查询结果插入到一张表中
- C++ 声明对象
- windows 7下解压缩版tomcat7配置方法
- ORA-12541: TNS:no listener 的详细解决方案
- HDOJ/HDU 2438 计算几何+三分
- 在北大学习这几天
- Notes Eclipse Dev
- TCP协议疑难杂症全景解析
- Silverlight中连接MySQL数据库实例详解
- FSAA (FullSceneAnti-aliasing)全屏抗锯齿技术
- 如何创建和使用动态链接(dll)和静态链接(lib),全面总结
- The Network Module in Qt 4-----Qt 4的网络模块(节选翻译)
- java 对文件的一般操作