标签:net 想法 lol bsp color include img 算法 比较
【题目描述】
相比 wildleopard 的家,他的弟弟 mildleopard 比较穷。他的房子是狭窄的而且在他的房间里面仅有一个灯泡。每天晚上,他徘徊在自己狭小的房子里,思考如何赚更多的钱。有一天,他发现他的影子的长度随着他在灯泡和墙壁之间走到时发生着变化。一个突然的想法出现在脑海里,他想知道他的影子的最大长度。
【题目链接】
https://loj.ac/problem/10016
【算法】
设对应的角度为θ,列出墙上有影子情况下函数关系:D+H-( (H-h)/tanΘ + DtanΘ)发现是对勾函数,数形结合讨论一波极值点位置和tanΘ范围的关系同时影子只有地上部分时显然长度递增。就不用三分法求极值点了。
【代码】
1 #include <bits/stdc++.h> 2 using namespace std; 3 int T; 4 int main() 5 { 6 scanf("%d",&T); 7 while(T--) { 8 double H,h,D,ans; 9 scanf("%lf%lf%lf",&H,&h,&D); 10 if(sqrt((H-h)/D)>=H/D) ans=h*D/H; 11 else if(sqrt((H-h)/D)<=(H-h)/D) ans=h; 12 else ans=D+H-2*sqrt((H-h)*D); 13 printf("%.3f\n",ans); 14 } 15 return 0; 16 }
标签:net 想法 lol bsp color include img 算法 比较
原文地址:https://www.cnblogs.com/Willendless/p/9507002.html