题解 ZOJ3203 Light Bulb
也就是loj上的#10016灯泡了...
先上原图:
因为长度肯定是个开口向下的二次函数,所以先是确定用三分来找位置,然后想办法求出当前阴影长度
看到这条斜线,就想到了一次函数,所以就建了一个系,没想到还真解出来了。
首先设灯泡位置为(H,0),再设它与人头之间连接的线段所在直线为y=kx+b
所以b=H(在灯泡处入x=0代可以解出来),k=(h-b)/x=(h-H)/x(这个不用解释吧)
所以这条直线(也就是光线)与地面相交于y=0时
即x1=-b/k。
因为b,k已知,所以肯定求得出来
然后判断是否大于D
如果小于D,直接返回x1-x
如果大于D,那么在墙上的一截就是当x=D时,y的值,即y=k*D+b
这样就可以了
代码如下:
#include<cstdio> double b,h,d,l,r; inline double max(double a,double b){
return a>b?a:b;
} inline double f(double x){
double k=(h-b)/x;//求k
double x1=-b/k;//求x1if(x1<=d)return x1-x;//判断
return d-x+k*d+b;
} int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%lf%lf%lf",&b,&h,&d);//干脆把b当H输入
l=,r=d;
while(l+1e-<r){//我这样写midl与midr只是图方便,不是有什么特殊的方法
double midl=(l+r)/;
double midr=(midl+r)/;
if(f(midl)<=f(midr))l=midl;
else r=midr;
}
printf("%.3lf\n",f(l));
}
return ;
}
完结撒花!!!✿✿ヽ(°▽°)ノ✿
题解 ZOJ3203 Light Bulb的更多相关文章
- Light Bulb(三分)
ZOJ Problem Set - 3203 Light Bulb Time Limit: 1 Second Memory Limit: 32768 KB Compared to wildl ...
- 三分 --- ZOJ 3203 Light Bulb
Light Bulb Problem's Link: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3203 Mean: ...
- ZOJ 3203 Light Bulb - 求导求最大值
如果L全在地面上: 输出 h * D / H 如果L全在墙上: 输出 h 否则: (D - X ) / X = Y / (H - h) L = D - X + h - Y 然后对L求导即可 #incl ...
- zoj 3203 Light Bulb,三分之二的基本问题
Light Bulb Time Limit: 1 Second Memory Limit: 32768 KB Compared to wildleopard's wealthiness, h ...
- ZOJ 3203 Light Bulb (三分+计算几何)
B - Light Bulb Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit ...
- ZOJ 3203 Light Bulb (三分查找)
Light Bulb Time Limit: 1 Second Memory Limit: 32768 KB Compared to wildleopard's wealthiness, h ...
- ZOJ 3203 Light Bulb
Compared to wildleopard's wealthiness, his brother mildleopard is rather poor. His house is narrow a ...
- ZOJ 3203 Light Bulb(数学对勾函数)
Light Bulb Time Limit: 1 Second Memory Limit: 32768 KB Compared to wildleopard's wealthiness, h ...
- TOJ 2814 Light Bulb
Description Compared to wildleopard's wealthiness, his brother mildleopard is rather poor. His house ...
随机推荐
- 《ASP.NET》数据绑定——GridView
GirdView简单介绍: 名称:网络视图. 来源:GridView 是 DataGrid的后继控件.在.net framework 2 中,尽管还存在DataGrid,可是GridView已经走上了 ...
- Win8下建立shortcut到開始界面
在win8前建立開始菜单都非常easy,但到win8就有点不一样了.它的開始菜单是metro风格的.以下我们来看下详细的实现代码.有兴趣的朋友能够自己測试下,它的作用是设置shortcut到metro ...
- 17229 Lry,你除了2还是2
17229 Lry,你除了2还是2 时间限制:1000MS 内存限制:65535K提交次数:282 通过次数:46 收入:22 题型: 编程题 语言: G++;GCC Description L ...
- git的经常使用命令
$ git config --global user.name "姓名" $ git config --global user.email "xxx@qq.com&quo ...
- 2016.04.18,英语,《Vocabulary Builder》Unit 15
term/termin, comes from the Latin verb terminare, 'to limit, bound, or set limits to', or the relate ...
- Vue环境搭建+VSCode+Win10
一.安装Node.js(js的运行环境) 1.在Node.js官网https://nodejs.org/en/download/下载安装包.2.下载后进行安装.3.打开命令行,输入node -v可以查 ...
- laravel接口设计
在各种公共方法都设计好,软件安装成功的条件下 routes/web.php中路由信息如下 <?php /* |------------------------------------------ ...
- [转载]ROS_LOG保存方法
原文地址:ROS_LOG保存方法作者:东咚... 把Service中的WWW的IP设置为允许日志保存服务器访问的范围 System->Logging,点击 "Actions" ...
- Hdu-6243 2017CCPC-Final A.Dogs and Cages 数学
题面 题意:问1~n的所有的排列组合中那些,所有数字 i 不在第 i 位的个数之和除以n的全排,即题目所说的期望,比如n=3 排列有123(0),132(2),231(3),213(2),312(3) ...
- mysqls,为node.js而编写的sql语句生成插件 (crud for mysql).
It is written in JavaScript,crud for mysql.You can also use transactions very easily. mysqls 一款专为nod ...