zju 3203——Light Bulb
来源:互联网 发布:java api 连接hdfs 编辑:程序博客网 时间:2024/05/23 21:36
题意:求灯照人影子的最大长度
思路:
设人到墙的距离为l,影子在墙上的高度为t
灯与人的连线,延长,跟地面的交点与墙的距离为S
可以列出三个方程
H/h=(S+d)/(S+l)
h/t=(S+l)/S
H/t=(S+d)/S
最后可以消去S
得到t(d-l)=hd-Hl
可以看出l+t是先增再减
于是用三分的方法
提交的时候发现一个问题,如果输出区间左端点,精度只要到1e-7就好了,要输出右端点,要1e-9..
代码如下:
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;double H,h,d;double cnt(double l){ return (h*d-H*l)/(d-l)+l;}int main(){// freopen("data.txt","r",stdin); int T; scanf("%d",&T); while(T--) {// cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~`"<<endl; scanf("%lf%lf%lf",&H,&h,&d); double l=0; double r=h*d/H; while(fabs(l-r)>=1e-9){// cout<<l<<' '<<r<<endl; double mid=(l+r)/2; double midmid=(mid+l)/2; if(cnt(mid)>cnt(midmid)){ l=midmid; } else r=mid; } printf("%.3lf\n",cnt(l)); } return 0;}
0 0
- zju 3203——Light Bulb
- Zoj——3203 Light Bulb
- ZOJ 3203 Light Bulb——(三分求极值)
- ZOJ 3203 Light Bulb
- ZOJ - 3203 Light Bulb
- ZOJ 3203 Light Bulb
- Zoj 3203 Light Bulb
- zoj 3203 Light Bulb
- ZOJ 3203 Light Bulb
- zoj 3203(Light Bulb)
- ZOJ 3203 Light Bulb
- ZOJ 3203 Light Bulb
- zoj 3203 Light Bulb
- ZOJ 3203 Light Bulb
- zoj 3203 Light Bulb
- zoj 3203 Light Bulb
- ZOJ 3203 Light Bulb
- ZOJ 3203 Light Bulb
- 用js获取网页DOM(例:input标签的ID)的chrome插件
- undefined reference to symbol 'floor@@GLIBC_2.0'
- 如何测试io口?
- Linux glibc幽灵漏洞修复方法
- 同一个TextView内不同文字、颜色、换行、下划线
- zju 3203——Light Bulb
- mysql处理高并发,防止库存超卖
- servlet/filter/listener/interceptor区别与联系
- Hive Order By操作
- 生活——好玩的网站收藏
- 【MySQL】MySQL与IO
- Java虚拟机-JVM各种参数配置大全详细
- solr增加相关总结
- MyBatis的动态SQL详解